Comment commenter un bloc de code Python dans Vim
Je me demandais si il y avait une touche de cartographie dans Vim pour me permettre de me mettre en retrait de certaines lignes de code (que ces lignes ont été sélectionnées en mode visuel, ou n lignes au-dessus/en dessous de la position actuelle du curseur).
Donc, fondamentalement, quelque chose qui convertit les suivantes
def my_fun(x, y):
return x + y
à
#def my_fun(x, y):
# return x + y
Je suis d'accord avec l'utilisation soit #
ou """
pour commenter les lignes. Idéalement, j'aimerais aussi le même mappage clavier décommenter les lignes si les lignes ont été commentés.
- Pas besoin de réinventer la roue, il y a un plugin: tComment pour vous, qui appuie (onu)commentaire de code pour plusieurs langues.
Vous devez vous connecter pour publier un commentaire.
Étape 1: Aller à la première colonne de la première ligne que vous voulez commenter.
Étape 2: Presse: Ctrl+v et sélectionnez les lignes que vous souhaitez commentaire:
Étape 3: Maj-
I
#espace (Entrer Insérez-à-gauche de la mode, le type de caractères à insérer. La sélection va disparaître, mais toutes les lignes à l'intérieur, il sera modifié après l'Étape 4.)Étape 4: Esc
Shift-I # <ESC>
ne fonctionne pas (peut-être que je suis en train de faire le mal).;
caractère...? Ce que je fais mal? J'ai aussi essayé Shift+v puis Maj+i, mais cela ne fonctionne pas, je passe en mode insertion, et quand je tape // et appuyez sur la touche ECHAP, il met seulement sur la première ligne.r
au lieu de Shifti
et cela a fonctionné.:h I
description n'est pas vraiment le descriptif de ce qui se passe lors de la sélection d'un bloc-- il décrit en fait l'insertion à la ligne de début, alors que ce mode de sélection s'insère sur le côté gauche de la sélection. Donc, Étape 3:I
pour passer en mode insertion, où les caractères sont insérés à gauche de la sélection, suivi par les caractères à insérer sur la gauche, suivie par l'Étape 4: Esc pour terminer. De même,A
ajoute les caractères après le côté droit de la sélection de bloc, ce qui est utile pour quelque chose comme*/
ou-->
r#
-- il s'agit de remplacer les caractères sélectionnés avec '#'. Aucune Esc est nécessaire parce que, contrairementI
etA
vous ne quittez pas le mode de commande et de passer en mode insertion.d'une manière manuelle
:10,12s/^#//
Vous pouvez ajouter le mappage suivant votre .vimrc
Mettre en évidence votre bloc avec:
#
pour commenter vos lignes de la première colonne.-#
de décommenter la même façon.hlsearch
sur, cela finit par mettre en surbrillance le premier caractère de plus en ligne.:s/{pattern}/{string}/[flags]
- mais il n'y a pas/
personnages!Mettre en évidence votre bloc avec: MajV
Commentaire le bloc sélectionné avec:
:norm i#
(minuscules i)Commenter, mettre en évidence votre bloc de nouveau, et décommentez avec:
:norm ^x
La
:norm
de commande effectue une action pour chaque ligne sélectionnée. Commentaires pour insérer une#
au début de chaque ligne, et de décommenter va supprimer cette#
.Shift+v
) et l'utilisation de:norm i#
modifie uniquement la première ligne sélectionnée. Cela fonctionne pour moi, pour les lignes de commentaires 389 à 391::389,391norm i #
J'ai l'habitude de balayer un bloc visuelle (
<C-V>
), puis de rechercher et de remplacer le premier personnage avec:(À l'entrée de commande de mode avec un bloc visuelle sélectionné automatiquement lieux "< " > sur la ligne de commande) je peux alors dé-commenter le bloc en balayant le même bloc visuelle et:
Il y a quelques bons plugins pour aider à commenter/décommenter les lignes. Par exemple Le NERD Intervenant.
J'ai les lignes suivantes dans mon
.vimrc
:Les raccourcis de préserver la position de votre curseur et vos commentaires aussi longtemps qu'ils commencent avec
#
(il y a un espace après le #). Par exemple:Après avoir commenté:
Après uncomennting:
s/^/#/
regexp. Je préfère le commentaire char à se produire au début de la ligne... mais beaucoup plus important encore, la commenter commentaires' est vraiment important. J'avais aussi une baisse de laau BufEnter *.py
, depuis#
les commentaires sont assez générale pour les commandes à être utilisé dans toutes les zones tampon par défaut.Franchement je utiliser un tcomment plugin pour que lien. Il peut traiter presque tous de la syntaxe. Il définit nice mouvements, à l'aide avec certains de texte bloc de rapprochement spécifique pour python en fait un outil puissant.
NERDcommenter est un excellent plugin pour les commentaires qui détecte automatiquement un certain nombre de types de fichiers et leurs associés de caractères de commentaire. Ridiculement facile à installer à l'aide Agent pathogène.
Commentaire avec
<leader>cc
. Décommentez avec<leader>cu
. Bascule et commentaires avec<leader>c<space>
.(La valeur par défaut
<leader>
clé dans vim est\
)Pas de plugins ou des mappages nécessaire. Essayez intégré dans la "norme", ce qui littéralement s'exécute tout ce que vous voulez sur chaque ligne sélectionnée.
Ajouter Des Commentaires
Supprimer Les # Commentaires
Ou si vos commentaires sont en retrait que vous pouvez faire
:norm ^x
Avis que ce sont juste ordinaires vim commandes étant précédé de ":la norme" pour les exécuter sur chaque ligne.
Réponse plus détaillée pour l'utilisation de "norme" de commande dans l'une des réponses ici
Quel est un moyen rapide pour commenter/décommenter les lignes dans Vim?
Il y a beaucoup de commentaires des plugins pour vim - un certain nombre de qui sont multi-langue - et pas seulement de python. Si vous utilisez un gestionnaire de plugin comme Vundle alors vous pouvez faire une recherche (une fois que vous avez installé Vundle) à l'aide par exemple:
Et vous obtiendrez une fenêtre de résultats. Alternativement, vous pouvez simplement recherche vim-scripts pour le commentaire plugins.
Un très faible poids léger plugin: vim-commentaire.
gcc pour commenter une ligne
gcgc pour décommenter. découvrez la page du plugin pour plus d'.
v+k/j mettez en surbrillance le bloc puis sur gcc pour le commentaire de ce bloc.
CtrlK pour le commentaire (Mode Visuel):
CtrlU pour décommenter (Mode Visuel):