Evita que vim arruine mi sangría en los comentarios


13

Por alguna razón, Vim piensa que todos mis comentarios deberían eliminar toda sangría. Si agrego #al principio de una línea, de repente se elimina todo el espacio en blanco inicial. ¿Cómo puedo detener esto?

Tengo instalado Janus y NERDtree, en caso de que sea relevante, junto con otras configuraciones personales copiosas en mi .vimrc, pero ninguna que (hasta donde yo sé) causaría tal comportamiento.

Respuestas:


4

Nunca estoy satisfecho con las respuestas "configurar todas estas cosas por si acaso". Insisto en saber cuál de esas cosas se equivocó y cómo se resolvieron. Aquí hay un comando que le mostrará los valores de todas las configuraciones relevantes mencionadas aquí, así como dónde se establecieron por última vez. Si no Last set fromsigue una línea, es un valor predeterminado. No tiene sentido obtener setlos valores predeterminados correctos.

:verbose set autoindent? smartindent? cindent? cinkeys? indentexpr?

noautoindent
nosmartindent
  cindent
        Last set from ~/.vim/vimrc
  cinkeys=0{,0},0),:,!^F,o,O,e
        Last set from ~/.vim/vimrc
  indentexpr=
Press ENTER or type command to continue

Ver: http://vimdoc.sourceforge.net/htmldoc/options.html#:set-verbose

Todo lo que tenía que hacer para que funcionara era eliminar set smartindentde un complemento y agregar a mi ~/.vim/vimrc:

set cindent cinkeys-=0#
set expandtab shiftwidth=4 tabstop=4 softtabstop=4

¡Guauu! OP cambió su respuesta seleccionada. Me siento honrado.
Bruno Bronosky

6

Esta es una batalla que luché también, y creo que finalmente gané. El problema es que hay una docena de formas diferentes en que el comportamiento puede ser anulado (por complementos / sintaxis).
Aquí están todas las configuraciones que tuve que usar para ganar la batalla:

set nosmartindent
set cindent
filetype plugin indent on
set cinkeys-=0#
set indentkeys-=0#
autocmd FileType * set cindent "some file types override it

Con el autocmd, el primero set cindentno debería ser necesario, pero esta es una de esas cosas en las que seguí agregando líneas hasta que el comportamiento desapareció.


Yo era capaz de saltar las dos últimas líneas y todavía resolver el problema
iconoclasta

1
@iconoclast tenga en cuenta que aún puede tener problemas con algunos tipos de archivos. La última línea se debe a que algunos archivos de sintaxis anulan la configuración de sangría.
Patrick

1
¡¡¡DIOS MIO!!! set indentkeys-=0#!! ¡FINALMENTE MI SUFRIMIENTO HA TERMINADO!
Kasapo



-1

He resuelto el problema comentando set smartindent.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.