Je rencontre régulièrement des codes C sans se plier. Il est irritant de les lire s’il n’ya pas de pliage, en particulier avec les fichiers longs. Comment puis-je les plier?
Plier selon la syntaxe
:set foldmethod=syntax
Si vous voulez le faire manuellement sur les bits que vous voulez replier
:set foldmethod=manual
puis créez de nouveaux plis en sélectionnant / déplaçant et en appuyant sur zf par exemple
shift-v jj zf
(en ignorant les espaces)
Edit: Voir aussi les commentaires de cette réponse pour les méthodes de pliage de retrait et de marqueur.
Je pense que vous avez peut-être mélangé la terminologie. Avez-vous besoin “d’emballage” ou “pliage”. Le retour à la ligne est celui où les lignes qui ne tiennent généralement pas à l’écran en raison de leur longueur sont coupées, c’est-à-dire affichées sur plusieurs lignes consécutives à l’écran (en fait, il s’agit d’une ligne, sur plusieurs lignes – difficile à expliquer, mieux à voir dans entraine toi).
En vim, l’emballage est défini par
:set wrap
pour l’allumer, et
:set textwidth=80
pour déterminer où vim doit envelopper le texte (80 caractères est généralement une bonne mesure).
Plier en revanche est une question complètement différente. C’est celui où vim plie plusieurs lignes de code (par exemple une fonction) en une seule ligne de code. C’est utile pour augmenter la lisibilité du code. Vim a plusieurs méthodes de pliage, vous pouvez toutes les voir si vous
:help folding
Je pense que ce que vous recherchez, ce serait le pliage de syntaxe, mais je peux me tromper. Je recommande de lire la page d’aide, ce n’est pas long et très utile.
J’ai rassemblé un plugin fold pour C et C ++ . Cela va au-delà de ce qui est fait avec le pliage syntaxique (peut-être pourrait-il être amélioré, je ne sais pas), et laisse les choses moins bruyantes et pas vraiment utiles dépliées, par rapport au pliage par indentation et marqueur.
La mise en garde: afin d’avoir des temps de réaction décents, j’ai dû faire quelques simplifications, et parfois le résultat est assez foiré (nous devons taper zx
pour résoudre ce problème).
Voici un petit screencast pour voir comment le plugin plie un code source C ++ correctement équilibré, qui n’est pas en cours de modification 🙁
Dans vi (par opposition à vim), la réponse était:
:set wm=1
Cela définit la marge de retour à un caractère avant la fin de la ligne. Ce n’est pas la meilleure spécification au monde avec des fenêtres de tailles variables (cela s’avérait bien avec les écrans verts quand il était difficile de changer la taille).
Cela signifie qu’il existe également une autre façon de le faire dans vim:
:set textwidth=30
Voir: Manuel de l’utilisateur VimDoc Section 25.1
Le vous voulez probablement le réglage
:set foldmethod=syntax
Mais ne mettez pas cela manuellement! Il manque l’une des principales fonctionnalités de Vims, qui propose des parameters personnalisés pour des centaines de types de fichiers déjà intégrés. Pour obtenir cela, ajoutez ceci à votre ~ / .vimrc
filetype plugin on filetype indent on
La détection de type de fichier est principalement basée sur l’extension, dans ce cas, les fichiers * .c. Voir: help: filetype pour plus d’informations. Vous pouvez également personnaliser ces parameters basés sur le type de fichier.
En fait, il existe un autre moyen très simple et efficace, qui consiste à utiliser foldmethod = marker
et à positionner foldmarker
sur {,}
. Le résultat du pli ressemblerait alors à:
set foldlevel=1
ou plus, si vous ne voulez pas tout replier au début)
zo
.
De plus, faire le pliage par syntaxe nécessite un peu de travail supplémentaire, et voici un bon tutoriel à ce sujet. Mais je pense que fold by marker={,}
est assez, et surtout, c’est simple et soigné.