python vim comments indentation

python - Los comentarios(#) van al inicio de la línea en el modo de inserción en Vim



comments indentation (3)

Cada vez que deseo agregar un comentario a una línea sangrada en vim, presiono Mayús - o (abra una nueva fila arriba del actual, cambio al modo insertar) y empiezo a escribir un comentario de Python (usando # ). Ese hash se mueve mágicamente al principio de la línea (sin sangría) y tengo que hacer clic en la pestaña varias veces.

¿Alguien sabe cómo evitarlo?


Es posible que desee probar Nerd Commenter , que es un complemento que le permite agregar comentarios a líneas en la mayoría de los idiomas automáticamente. Simplemente coloque el cursor en la línea que le interese y escriba , c Espacio y la línea se comentará. Las mismas teclas borrarán el comentario para revelar la línea.

Entonces si tienes:

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

Escribe , c Espacio y obtienes:

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


Supongo que has set smartindent en tu .vimrc

Ver :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.

Creo que no necesitas smartindenting mientras codifica Python. Así que simplemente elimínelo de su configuración o agregue lo siguiente a su .vimrc:

au! FileType python setl nosmartindent


intenta poner eso en tu .vimrc:

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

Esto hará que la inserción del signo hash (libra) siempre se sangra en los archivos fuente de Python.