2010-11-11 11 views
50

en mi .vimrc que tienen:espacios como pestañas y el comportamiento de retroceso en Vim

set shiftwidth=4 
set tabstop=4 
set expandtab 

configurado para utilizar 4 espacios en lugar de pestaña cuando pulso el botón Tab. Pero cuando toco el retroceso después de una pestaña, necesito retroceder los 4 espacios. ¿Hay alguna manera de tenerlo así que cuando voy a retroceder una "pestaña", puede eliminar los 4 espacios?

+5

Nota incidental: puede tener múltiples opciones 'set' en una línea, por lo que puede tener' set sw = 4 ts = 4 et sts = 4' –

Respuesta

72

Trate set softtabstop=4

+2

Para mí, esta es una de las opciones básicas más difíciles de entender por su descripción en la documentación de vim. No se puede culpar a nadie por perderlo. "Parece que se están insertando s, mientras que de hecho se usa una combinación de espacios y s". ¿Que qué? ¿Magia? – Cascabel

+6

Tengo [realmente confundido] (http://stackoverflow.com/questions/1562336/tab-vs-space-preferences-in-vim/1610732#1610732) sobre estas configuraciones, así que hice un screencast sobre [pestañas y espacios en Vim] (http://vimcasts.org/episodes/tabs-and-spaces/). Espero que ayude a aclarar las cosas. – nelstrom

6

Puedes probar a utilizar^T y D ^.

:help i_CTRL-T 
:help i_CTRL-D 

Estos permiten insertar o eliminar (más como un retroceso) una cantidad de espacios igual a shiftwidth.

+2

¡Bonito! Asignar esto de la siguiente manera me da una sensación natural: 'inoremap ' –

0

Tengo el mismo problema con usted anteriormente, pero pronto me parece que no tiene ningún sentido simplemente retroceder 1 carácter en la codificación real. pero si realmente desea retroceder 1 carácter, puede escribir un espacio más, luego puede eliminar solo un carácter cada vez que pulse la barra espaciadora, incluso si llegó a donde escribió la pestaña de 4 espacios

Cuestiones relacionadas