web-dev-qa-db-fra.com

Comment commenter plusieurs lignes à la fois?

Comment puis-je sélectionner un tas de texte et tout commenter?

Actuellement, je passe à la première ligne, passe en mode insertion puis saisis # left-arrowdown-arrow puis je répète cette séquence, en enregistrant peut-être quelques touches en utilisant le . fonction de répétition pour faire chaque ligne.

Existe-t-il de toute façon que je pourrais (par exemple) sélectionner plusieurs lignes en mode visuel ou en utilisant une plage de lignes et une commande ex ('colon') et pour cette plage commenter toutes les lignes avec un # pour en faire un "commentaire de bloc".

La possibilité de "dé-commenter" rapidement (supprimer le #) pour un commentaire de bloc serait aussi bien.

92
Michael Durrant

Gammes:

Vous pouvez le faire avec les commandes suivantes:

pour commenter:

:66,70s/^/#

pour ne pas commenter:

:66,70s/^#/

Évidemment, nous commentons ici les lignes de 66 à 70 (inclus).

119
periket2000

Mode de blocage visuel

Tout d'abord, déplacez le curseur sur le premier caractère de la première ligne du code de bloc que vous souhaitez commenter, puis tapez:

Ctrl + v                                    

alors vim ira dans VISUAL BLOCK mode. Utilisez j pour déplacer le curseur vers le bas jusqu'à atteindre la dernière ligne de votre bloc de code. Tapez ensuite:

Shift + i

maintenant vim passe en mode INSERT et le curseur est au premier caractère de la première ligne. Enfin, tapez # puis ESC et le bloc de code est maintenant commenté.

Pour décomposer, faites les mêmes choses mais au lieu de taper Shift + I, vous tapez simplement x pour supprimer tout # après les avoir mis en surbrillance dans VISUAL BLOCK mode.

147
cuonglm

Remplacer

Par souci d'exhaustivité, voici une autre façon:

  1. Entrez en mode visuel en appuyant sur v
  2. sélectionnez les lignes que vous souhaitez commenter (up/down flèche ou j/k)
  3. entrer :s/^/# / qui se traduit par: dans la sélection (:) remplacer le début de la ligne (^) avec `# '
20
reto

Marqueurs:

Les étapes suivantes sont effectuées en mode commande:

  1. allez à la première ligne et placez le marqueur avec mt
  2. allez à la ligne jusqu'à laquelle vous voulez aller
  3. lancez la commande :'t,.s/^/#/

Explication

  • m#, où # désigne n'importe quelle lettre, place un marqueur à votre position actuelle. L'emplacement peut être référencé ultérieurement à l'aide de '#, où # est la même lettre que précédemment. Dans notre cas, nous avons utilisé la lettre t
  • La commande :'t,.s/^/#/ se lit comme suit:
    • : le préfixe des commandes complexes
    • 't,. définit la plage à laquelle la commande suivante doit s'appliquer. Dans notre cas, c'est du marqueur 't jusqu'à la ligne actuelle .
    • s/^/#/ est une formule de substitution, remplaçant tous les débuts de ligne ^ avec un caractère littéral #
10
Chandra kant

Brancher

Il existe un plugin , qui offre un moyen efficace de commenter en fonction du système de fichiers utilisé.

En outre, cette réponse explique comment utiliser le NERD commenter pour vim. Quelques instructions plus basiques sur la façon d'utiliser le plugin sont discutées ici .

5
Ramesh

Utilisez l'un ou l'autre NERDCommenter comme mentionné, mais si ce n'est pas disponible, j'utilise les modes visuels. Je passe en mode Visual Line, fais ma sélection, souvent ses blocs d'espaces, donc je vais V{ puis passez en mode Visual Block avec Ctrl+Q puis insérez le symbole de commentaire au début des lignes avec I, donc pour commenter un bloc de texte, je ferais

V{<C-Q>I#<Esc>
1
TankorSmash