vimrc - comment bloquer les commentaires?


14

Je ne veux pas commenter des lignes de texte dans un fichier texte ou un code. Je cherche à insérer des commentaires de bloc dans un fichier .vimrc . Pour insérer un commentaire d'une seule ligne "est utilisé, par exemple:

" remove spaces and tabs as well  at the end of line automatically while saving
autocmd BufWritePre * :%s/\s\+$//e

Maintenant, j'ai une quantité relativement importante de paramètres / configurations / plugins collectés au fil des ans après avoir navigué sur Internet pour ajouter des fonctionnalités intéressantes. Je cherche à ajouter de gros blocs de commentaires à mon fichier .vimrc. Ajouter "à chaque ligne est une option mais je cherche une syntaxe de commentaire de bloc. Similaire à /**/C.

//est identique à "
/* */est identique à _ ____ ?

La recherche sur Unix.SE, SO et la recherche sur Google n'ont pas beaucoup aidé.


1
Je soupçonne que la fonction de commentaires sur plusieurs lignes n'existe pas dans les fichiers vim-config.
Dilawar

Réponses:


5

Je ne pense pas que ce soit possible. Le mieux que vous puissiez faire est de bloquer la sélection de texte et d'effectuer une recherche / remplacement sur le premier caractère s/^/"/dans vim pour insérer un "au début de chaque ligne.

Le plugin vim NERD Commenter pourrait également vous faciliter la tâche.


1
J'utilise la solution de contournement:., + 3s / ^ / "/ où le point représente la ligne actuelle et +3 représente le nombre de lignes consécutives (après la ligne de point).
daGo

6

Ma solution consiste à envelopper le code dans un fichier function.

Cela fonctionne bien dans vimrc, par exemple, pour les tests de mise en évidence de la syntaxe hérédoc sur place , qui nécessitent également de vrais commentaires de bloc sans caractères de début . Dans mon vimrc, j'utilise un tel bloc directement après avoir configuré mes heredoc SyntaxRanges .

function! _blockcomment()

    " free text comment
    You can write free text here,
    but vim will try to highlight it as vimscript!

    " markdown heredoc
    test <<MD
    ### Nevertheless ###
    * for testing my fuzzy SyntaxRange heredocs
    * having no leading chars is essential
    * and the blockcomment function does the trick
    MD  

endfunction 

Cette solution est similaire à l' if 0astuce de @ Stéphane , qui n'a pas fonctionné pour moi. Assurez-vous de ne jamais appeler cette fonction!


1

Une astuce:

  • placez votre curseur sur le premier caractère de la première ligne pour commenter
  • appuyez sur Ctrl-V pour entrer en mode Visual Block
  • descendez votre curseur jusqu'à la dernière ligne pour commenter
  • appuyez sur I (shift + i) pour entrer en mode d'insertion conditionnelle
  • appuyez sur '"' pour commenter (un devis et un espace)
  • appuyez sur Echap pour quitter le mode d'insertion

Toutes vos lignes sélectionnées sont désormais précédées de la chaîne que vous avez tapée en mode insertion.


Merci mais je cherchais quel est exactement le style de commentaire de bloc dans vimrc .
mtk

Je ne pense pas qu'il existe une telle fonctionnalité dans vim. Au fait, ce n'est pas si courant. Dans de nombreux langages de script, il est plus courant d'utiliser des commentaires sur une seule ligne sur une plage de lignes.
lgeorget

1

Utilisez le tCommentplugin pour Vim: http://www.vim.org/scripts/script.php?script_id=1173

Oui, il prend en charge Python (ajouté en 2011).

description: TComment fonctionne comme une bascule, c'est-à-dire qu'il mettra en commentaire le texte qui contient des lignes non commentées et qu'il supprimera le texte déjà commenté (c'est-à-dire le texte qui ne contient pas de lignes non commentées).

Si le type de fichier est correctement défini,: TComment déterminera la chaîne de commentaire à utiliser en fonction des valeurs de & commentstring ou & comments. Pour certains types de fichiers, la définition de commentaire est explicitement définie. Vous pouvez | tcomment # DefineType () | pour ajouter vos propres définitions.

TComment sait comment gérer le code intégré d'un type de fichier différent du type de fichier principal, par exemple, les régions ruby ​​/ python / perl dans les scripts vim, HTML ou JavaScript dans le code php, etc.

En tant qu'opérateur (le préfixe peut être personnalisé via g: tcommentMapLeaderOp1 et g: tcommentMapLeaderOp2):

gc{motion}   :: Toggle comments (for small comments within one line 
                the &filetype_inline style will be used, if 
                defined) 
gcc          :: Toggle comment for the current line 
gC{motion}   :: Comment region 
gCc          :: Comment the current line 

Cartes de clé primaire:

<c-_><c-_>   :: :TComment 
<c-_><space> :: :TComment <QUERY COMMENT-BEGIN ?COMMENT-END> 
<c-_>b       :: :TCommentBlock 
<c-_>a       :: :TCommentAs <QUERY COMMENT TYPE> 
<c-_>n       :: :TCommentAs &filetype <QUERY COUNT> 
<c-_>s       :: :TCommentAs &filetype_<QUERY COMMENT SUBTYPE> 
<c-_>i       :: :TCommentInline 
<c-_>r       :: :TCommentRight 
<c-_>p       :: Comment the current inner paragraph 

Il existe également un ensemble secondaire de mappages de touches avec _ comme leader (plus préférable sur les terminaux).


1

Il y a ce plugin qui change la vie par tpopeappelévim-commentary

https://github.com/tpope/vim-commentary

Ce plugin fournit :

  • Santé mentale
  • Commentaires correctement en retrait
  • Ne met pas en commentaire les lignes vides / inutiles

Utilisation :

  • Installez via Vundle (ou Pathogen je suppose).
  • Mettez en surbrillance votre texte et appuyez sur :qui montrera que:<,'>
  • Saisissez Commentaire ici :<,'>Commentaryet appuyez sur Entrée.
  • Bom. Votre bourgeon fini.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.