Je me demandais s'il y avait un mappage de touches dans Vim pour me permettre d'indenter certaines lignes de code (si 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 ce qui suit
def my_fun(x, y):
return x + y
à
#def my_fun(x, y):
# return x + y
Je suis d'accord pour utiliser l'un #
ou l' autre ou """
pour commenter les lignes pertinentes. Idéalement, je voudrais également le même keymapping pour décommenter les lignes si les lignes données ont été commentées.
Réponses:
Étape 1: Accédez à la première colonne de la première ligne que vous souhaitez commenter.
Étape 2: Appuyez sur: Ctrl+ vet sélectionnez les lignes que vous souhaitez commenter:
Étape 3: Shift -
I
#space(Entrez en mode Insertion à gauche, tapez les caractères à insérer. La sélection disparaîtra, mais toutes les lignes qu'elle contient seront modifiées après l'étape 4.)Étape 4: Esc
la source
Shift-I # <ESC>
n'a pas fonctionné (peut-être que je le fais mal).un sens manuellement
:set number :10,12s/^/#
la source
:10,12s/^#//
Vous pouvez ajouter le mappage suivant à votre .vimrc
vnoremap <silent> # :s/^/#/<cr>:noh<cr> vnoremap <silent> -# :s/^#//<cr>:noh<cr>
Mettez en valeur votre bloc avec:
#
pour commenter vos lignes de la première colonne.-#
pour décommenter de la même manière.la source
Mettez en valeur votre bloc avec: ShiftV
Commentez le bloc sélectionné avec:
:norm i#
(i minuscule)Pour décommenter, mettez à nouveau votre blocage en surbrillance et supprimez les commentaires avec:
:norm ^x
La
:norm
commande exécute une action pour chaque ligne sélectionnée. Commenter insérera un#
au début de chaque ligne, et décommenter le supprimera#
.la source
Shift+v
) puis l'utilisation:norm i#
ne modifie que la première ligne sélectionnée. Cela fonctionne pour moi de commenter les lignes 389 à 391::389,391norm i #
Je balaie généralement un bloc visuel (
<C-V>
), puis recherche et remplace le premier caractère par::'<,'>s/^/#
(L'entrée en mode commande avec un bloc visuel sélectionné place automatiquement '<,'> sur la ligne de commande) Je peux ensuite décommenter le bloc en balayant le même bloc visuel et:
:'<,'>s/^#//
la source
Il existe de bons plugins pour aider à commenter / décommenter les lignes. Par exemple, The NERD Commenter .
la source
J'ai les lignes suivantes dans mon
.vimrc
:" comment line, selection with Ctrl-N,Ctrl-N au BufEnter *.py nnoremap <C-N><C-N> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>`n au BufEnter *.py inoremap <C-N><C-N> <C-O>mn<C-O>:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR><C-O>:noh<CR><C-O>`n au BufEnter *.py vnoremap <C-N><C-N> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>gv`n " uncomment line, selection with Ctrl-N,N au BufEnter *.py nnoremap <C-N>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>:s/^#$//ge<CR>:noh<CR>`n au BufEnter *.py inoremap <C-N>n <C-O>mn<C-O>:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR><C-O>:s/^#$//ge<CR><C-O>:noh<CR><C-O>`n au BufEnter *.py vnoremap <C-N>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>gv:s/#\n/\r/ge<CR>:noh<CR>gv`n
Les raccourcis conservent la position de votre curseur et vos commentaires tant qu'ils commencent par
#
(il y a un espace après #). Par exemple:# variable x x = 0
Après avoir commenté:
# variable x #x = 0
Après avoir décroché:
# variable x x = 0
la source
s/^/#/
expression régulière plus simple . Je préfère que le caractère de commentaire apparaisse au début de la ligne ... mais bien plus important encore, «commenter les commentaires» est vraiment assez important. Je laisserais également tomber leau BufEnter *.py
, car les#
commentaires sont suffisamment généraux pour que les commandes soient utilisées par défaut dans tous les tampons.Franchement, j'utilise un plugin tcomment pour ce lien . Il peut gérer presque toutes les syntaxes. Il définit de jolis mouvements, son utilisation avec des adaptateurs de blocs de texte spécifiques à python en fait un outil puissant.
la source
NERDcommenter est un excellent plugin pour commenter qui détecte automatiquement un certain nombre de types de fichiers et leurs caractères de commentaire associés. Ridiculement facile à installer avec Pathogen .
Commentez avec
<leader>cc
. Décommentez avec<leader>cu
. Et basculez les commentaires avec<leader>c<space>
.(La
<leader>
clé par défaut dans vim est\
)la source
Il existe de nombreux plugins de commentaires pour vim - dont certains sont multilingues - pas seulement python. Si vous utilisez un gestionnaire de plugins comme Vundle, vous pouvez les rechercher (une fois que vous avez installé Vundle) en utilisant par exemple:
Et vous obtiendrez une fenêtre de résultats. Sinon, vous pouvez simplement rechercher des scripts vim pour les plugins de commentaires .
la source
Aucun plug-in ou mappage requis. Essayez la commande "norm" intégrée, qui exécute littéralement tout ce que vous voulez sur chaque ligne sélectionnée.
Ajoutez des commentaires
1. shift V to visually select lines 2. :norm i#
Supprimer # commentaires
1. visually select region as before 2. :norm x
Ou si vos commentaires sont en retrait, vous pouvez le faire
:norm ^x
Notez que ce ne sont que des commandes vim ordinaires précédées de ": norm" pour les exécuter sur chaque ligne.
Réponse plus détaillée pour l'utilisation de la commande "norm" dans l'une des réponses ici
Quel est le moyen rapide de commenter / décommenter des lignes dans Vim?
la source
Un plugin léger très minimal : vim-commentary.
gccpour commenter une ligne
gcgcà décommenter. consultez la page du plugin pour en savoir plus.
v+k/jmettez le bloc en surbrillance puis gccpour commenter ce bloc.
la source
CtrlK pour commentaire (mode visuel):
vnoremap <silent> <C-k> :s#^#\##<cr>:noh<cr>
CtrlU pour décommenter (mode visuel):
vnoremap <silent> <C-u> :s#^\###<cr>:noh<cr>
la source