La syntaxe foldmethod
est excellente, mais parfois je veux simplement plier les commentaires dans un fichier source.
Le pliage syntaxique des commentaires ne fonctionne que pour les commentaires de style C comme:
/*
...
*/
Mais pas pour un commentaire comme:
//
//
// ...
//
Ou même pour des blocs de commentaires dans des langages non similaires à C comme:
#
#
# ...
#
Comment puis-je configurer cela avec vim?
Réponses:
Plier uniquement les commentaires est assez facile en utilisant
foldmethod=expr
:Cela vérifiera simplement si la ligne commence par un espace quelconque + un caractère de commentaire. Notez que cela est assez naïf et peut ne pas fonctionner pour toutes les langues. Donc, vous voudrez peut-être utiliser un autocmd pour être plus précis:
Pour plus d'informations sur fold-expr, voir:
:help fold-expr
:help folding-functions
L'utilisation du pliage de syntaxe et du pliage de commentaires est plus complexe; cela nécessiterait de modifier le fichier de syntaxe dans
/usr/share/vim/vim74/syntax/*.vim
, et sera spécifique à la langue que vous utilisez.Notez que certains types de fichiers le font déjà! Par exemple de
ruby.vim
:la source
J'aime le pliage avec retrait mais en incluant les commentaires dans le pli (je veux dire que chaque commentaire obtient le même niveau de pli que la ligne précédente).
Malheureusement, le mot clé foldignore ne fonctionne que pour les commentaires d'une ligne. Je plie donc avec expr dans vimrc:
Le dernier bloc:
Renvoie une base de niveau de repli au retrait.
Et l'autre :
Vérifie si le premier caractère de la ligne est considéré comme un commentaire avec la syntaxe. C'est donc un bon moyen de fusionner le pliage de retrait et de syntaxe avec l'expression, le pliage le plus avancé.
Notez que vous pouvez également "définir le texte de pliage" en fonction de l'apparence du résultat.
la source
Vous pouvez sélectionner visuellement le bloc commenté avec
vac
puis créer un pli manuelzf
.L'objet texte de commentaire peut être une extension de langue pour un ensemble d'objets texte vim standard. Testé avec la syntaxe Go.
la source
ac
n'est pas une fonction intégrée. Mais avec le commentaire de tpopegc
est un objet texte. Donc, de meilleures solutions sontzfac
,zfgc
ouzfip
au pire