62 votes

Mode d'insertion Vim: Commentaires (#) aller au début de la ligne

Chaque fois que je veux ajouter un commentaire à une ligne en retrait dans vim, je tape Shift-o (ouvre une nouvelle ligne au-dessus de la ligne actuelle, passe en mode insertion) et commence à taper un commentaire python (avec #). Comme par magie, ce hachage est déplacé au début de la ligne (pas d’indentation) et je dois cliquer plusieurs fois sur la tabulation.

Quelqu'un sait comment contourner le problème?

68voto

Maxim Kim Points 2801

Je suppose que vous avez set smartindent dans votre .vimrc

Voir :h smartindent

 When typing '#' as the first character in a new line, the indent for
that line is removed, the '#' is put in the first column.  The indent
is restored for the next line.  If you don't want this, use this
mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H.
When using the ">>" command, lines starting with '#' are not shifted
right.
 

Je crois que vous n’avez pas besoin d’identification intelligente lors du codage de python. Donc, supprimez-le simplement de vos paramètres ou ajoutez ce qui suit à votre fichier .vimrc:

 au! FileType python setl nosmartindent
 

10voto

Haes Points 6453

essayez de mettre cela dans votre .vimrc:

 autocmd BufRead *.py inoremap # X<c-h>#
 

Cela fera en sorte que l'insertion du signe dièse (dièse) soit toujours en retrait dans les fichiers sources Python.

1voto

Vous pouvez essayer de Nerd Intervenant, qui est un plugin qui permet d'ajouter des commentaires à des lignes dans la plupart des langues automatiquement. Il vous suffit de placer le curseur sur la ligne qui vous intéresse et le type ,cde l'Espace et de la ligne seront commentés. La même séquence de touches supprimer le commentaire de révéler la ligne.

Donc, si vous avez:

def func():
  print("indented") &lt- cursor position in command mode

Type ,cde l'Espace et vous obtenez:

def func():
  #print("indented")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X