En primer lugar, no use la Tabclave en Vim para la sangría manual. Vim tiene un par de comandos en modo de inserción para aumentar o disminuir manualmente la cantidad de sangría. Esos comandos son Ctrl-Ty Ctrl-D. Estos comandos observan los valores de tabstop
, shiftwidth
y expandtab
, y mantienen la combinación correcta de espacios y pestañas (número máximo de pestañas seguido de cualquier número necesario de espacios).
En segundo lugar, estas teclas de sangría manual no tienen que usarse mucho de todos modos si usa una sangría automática.
Si en Ctrl-Tlugar de Tabmolestarte, puedes reasignarlo:
:imap <Tab> ^T
También puede reasignar Shift-Tabpara hacer el Ctrl-Ddeindent:
:imap <S-Tab> ^D
Aquí ^ T y ^ D son caracteres de control literales que se pueden insertar como Ctrl-VCtrl-T.
Con esta asignación en su lugar, aún puede escribir Tab literal en el búfer usando Ctrl-VTab. Tenga en cuenta que si hace esto, incluso si :set expandtab
está activado, obtendrá un carácter de tabulación sin expandir.
Se <Tab>
logra un efecto similar al del mapa :set smarttab
, lo que también hace que el retroceso en el frente de una línea se comporte de manera inteligente.
En smarttab
modo, cuando no Tabse usa al comienzo de una línea, no tiene un significado especial. Eso es diferente de mi mapeo anterior de Taba Ctrl-T, porque un Ctrl-Tusado en cualquier parte de una línea (en modo de inserción) aumentará la sangría de esa línea.
Otras asignaciones útiles pueden ser:
:map <Tab> >
:map <S-Tab> <
Ahora podemos hacer cosas como seleccionar algunas líneas y presionar Tabpara sangrarlas. O presione Tabdos veces en una línea (en modo comando) para aumentar su sangría.
Si utiliza los comandos apropiados de gestión de la sangría, entonces todo está controlado por los tres parámetros: shiftwidth
, tabstop
y expandtab
.
El shiftwidth
parámetro controla el tamaño de la sangría; si desea cuatro sangrías de espacio, use :set shiftwidth=4
o la abreviatura :set sw=4
.
Si solo se hace esto, se creará una sangría usando una mezcla de espacios y pestañas, porque noexpandtab
es el valor predeterminado. Uso :set expandtab
. Esto hace que los caracteres de tabulación que escribe en el búfer se expandan en espacios y que la sangría administrada por Vim use solo espacios.
Cuando expandtab
está activado, y si administra su sangría a través de todos los mecanismos Vim adecuados, el valor de se tabstop
vuelve irrelevante. Controla cómo aparecen las pestañas si ocurren en el archivo. Si tiene set tabstop=8 expandtab
y luego introduce una pestaña dura en el archivo usando Ctrl-VTab, producirá una alineación a la siguiente posición de pestaña basada en 8 columnas, como de costumbre.