Question

I circulent régulièrement dans les codes C, sans pliage. Il est irritant pour les lire s'il n'y a pas de pliage, en particulier avec des fichiers longs. Comment puis-je les plier?

Était-ce utile?

La solution

Pour plier selon la syntaxe

:set foldmethod=syntax

Si vous voulez le faire manuellement sur les bits que vous voulez escamoter

:set foldmethod=manual

puis créer de nouveaux plis en sélectionnant / en mouvement et en appuyant sur zf par exemple.

shift-v j j zf

(en ignorant les espaces)

Edit:. Voir aussi les commentaires de cette réponse pour foldmethods tiret et marqueurs

Autres conseils

Je pense que vous avez peut-être mélangé la terminologie. Avez-vous besoin « emballage » ou « pliage ». Emballage est celui où les lignes qui ne rentrent pas généralement à l'écran en raison de leur longueur, sont enveloppés, par exemple montré sur plusieurs lignes consécutives à l'écran (en fait, il est une ligne, dans plusieurs lignes - difficile à expliquer, mieux voir pratique).

emballage vim est fixé par

:set wrap

pour l'activer, et

:set textwidth=80

pour déterminer où vim doit envelopper le texte (80 caractères est généralement une mesure agréable).

Pliage d'autre part est une question tout à fait différente. Il est celui où vim replie plusieurs lignes de code (par exemple, une fonction) dans une ligne de code. Il est utile pour augmenter la lisibilité du code. Vim dispose de plusieurs méthodes de pliage, vous pouvez voir tous si vous

:help folding

Ce que vous cherchez, je pense serait, pliage de syntaxe, mais je peux me tromper. Je recommande la lecture de la page d'aide, il ne tarde pas, et très utile.

J'ai roulé un fold plug-in pour C et C ++ . Il va au-delà de ce qui est fait avec la syntaxe de pliage (peut être il pourrait être amélioré, je ne sais pas), et laisse moins bruyant et pas des choses vraiment utiles se sont déroulées, par rapport à l'indentation et le pliage à base de marqueur.

La mise en garde:. Afin d'avoir des temps de réaction décent, je devais faire quelques simplifications, et parfois le résultat est tout à fait décoiffé (nous devons taper zx pour le fixer)

Voici un petit screencast pour voir comment le plugin se replie un code source C ++ correctement équilibré, qui ne sont pas en cours de modification: (

vi (par opposition à vim) la réponse était:

:set wm=1

Ceci définit la marge d'enveloppe à un caractère avant la fin de la ligne. Ce n'est pas meilleure spécification du monde avec des fenêtres de taille variable (il était logique avec des écrans verts quand il était difficile de changer la taille).

Cela signifie qu'il ya aussi une autre façon de le faire dans vim:

:set textwidth=30

Voir: Section 25,1 Manuel de l'utilisateur VimDoc

vous voulez probablement le paramètre

:set foldmethod=syntax

Mais ne mettez pas manuellement! Cest manquant sur l'un des plus grands VIMS caractéristiques qui est d'avoir des paramètres personnalisés pour des centaines de types de fichiers déjà intégré. Pour obtenir cela, ajoutez ceci à votre ~ / .vimrc

filetype plugin on
filetype indent on

détection de filetype est principalement basée sur l'extension, dans ce cas, fichiers * .c. Voir: help: filetype pour plus d'informations. Vous pouvez également personnaliser ces paramètres en fonction de types de fichiers.

En fait, il y a une autre voie à suivre très simple et efficace, qui utilise foldmethod = marker et mis foldmarker à {,}. Ensuite, le résultat aurait pli ressemble à:

  1. toutes les fonctions de pliage ed. En fait, il semble que le contour en IDE. (Et vous pouvez également set foldlevel=1or plus, si vous ne voulez pas plier tout au début)

  1. est ce que une fonction normale ressemble lorsque vous l'ouvrez avec le niveau 1 via zo.

En outre, pour faire plier par la syntaxe a besoin d'un peu de travail supplémentaire, et voici un bon tutoriel à ce sujet. Mais je pense fois par marker={,} est tout à fait suffisant, et surtout, il est simple et propre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top