Mi configuración actual supone 8 espacios; ¿Cómo podría redefinirlo?
Mi configuración actual supone 8 espacios; ¿Cómo podría redefinirlo?
Respuestas:
Depende de lo que quieras decir. ¿Desea que los caracteres de tabulación reales en su archivo aparezcan 4 espacios de ancho, o por "tabulación" realmente quiere decir una sangría , generada al presionar la tecla de tabulación, lo que daría como resultado que el archivo contenga literalmente (hasta) 4 caracteres de espacio para cada "pestaña" que escribes?
Dependiendo de su respuesta, uno de los siguientes conjuntos de configuraciones debería funcionar para usted:
Para los caracteres de tabulación que aparecen en 4 espacios :
set tabstop=4
Si está usando el carácter de tabulación real en su código fuente, probablemente también desee estas configuraciones (estos son en realidad los valores predeterminados, pero es posible que desee establecerlos a la defensiva):
set softtabstop=0 noexpandtab
Finalmente, si desea que una sangría se corresponda con una sola pestaña, también debe usar:
set shiftwidth=4
Para sangrías que constan de 4 caracteres de espacio pero se ingresan con la tecla de tabulación:
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
Para que la configuración anterior sea permanente, agregue estas líneas a su vimrc .
En caso de que necesite hacer ajustes, o simplemente le gustaría entender qué significan todas estas opciones, aquí hay un desglose de lo que significa cada opción:
tabstop
El ancho de un tabulador rígido medido en "espacios" - efectivamente el ancho (máximo) de un carácter de tabulación real.
shiftwidth
El tamaño de una "sangría". También se mide en espacios, por lo que si la base de su código sangra con caracteres de tabulación, entonces desea
shiftwidth
igualar el número de caracteres de tabulación por vecestabstop
. Esto también es utilizado por cosas como el=
,>
y<
los comandos.
softtabstop
Establecer esto en un valor distinto de cero
tabstop
hará que la tecla de tabulación (en modo de inserción) inserte una combinación de espacios (y posiblemente tabulaciones) para simular tabulaciones en este ancho.
expandtab
Habilitar esto hará que la tecla de tabulación (en modo de inserción) inserte espacios en lugar de caracteres de tabulación. Esto también afecta el comportamiento del
retab
comando.
smarttab
Habilitar esto hará que la tecla de tabulación (en modo de inserción) inserte espacios o pestañas para ir al siguiente guión de la siguiente tabulación cuando el cursor esté al comienzo de una línea (es decir, los únicos caracteres anteriores son espacios en blanco).
Para más detalles sobre cualquiera de estos ver en vim (por ejemplo ):help 'optionname'
:help 'tabstop'
~/.vimrc
es la configuración de vim del usuario. La mayoría de las personas dejan solo la configuración del sistema y solo editan la configuración del usuario. Tenga en cuenta que ~/.vimrc
no existirá hasta que lo cree en la mayoría de los sistemas.
set softtabstop=4
función! Estoy cansado de tratar de leer su código con less
, o cualquier otro editor vim
, excepto para ver sangrías locas porque redefinió la pestaña para que sea un número arbitrario de espacios (¡aunque el resto del sistema piensa lo contrario!) :-)
tabstop=8
para sangrías que consisten en 4 espacios? No pude entender el motivo después de leer las descripciones de las distintas configuraciones. Otra respuesta dice usar, lo tabstop=4
que tiene un poco más de sentido para mí.
tabstop
opción controla el ancho de un carácter de pestaña dura. Si desea que sus guiones a constan de 4 caracteres de espacio, en lugar de los caracteres de tabulación individuales que son 4-ancha, entonces el ancho de su carácter de tabulación no importa - tipo de . En la práctica, probablemente desee que el ancho de su carácter de tabulación sea diferente del ancho de sus sangrías, para reducir la posibilidad de que los caracteres de tabulación se disfracen como sangrías adecuadas. ( list
+ también expandtab
puede ayudar aquí) Además, las pestañas de 8 caracteres de ancho son "el estándar": su terminal, Python y muchas otras herramientas están predeterminadas en pestañas de 8 caracteres de ancho.
Para definir esto de forma permanente para el usuario actual, cree (o edite) el .vimrc
archivo:
$ vim ~/.vimrc
Luego, pegue la siguiente configuración en el archivo. Una vez que se reinicie vim, se aplicará la configuración de la pestaña.
set tabstop=4 " The width of a TAB is set to 4.
" Still it is a \t. It is just that
" Vim will interpret it to be having
" a width of 4.
set shiftwidth=4 " Indents will have a width of 4
set softtabstop=4 " Sets the number of columns for a TAB
set expandtab " Expand TABs to spaces
:retab
para convertir existente tab
a spaces
. vim.wikia.com/wiki/Converting_tabs_to_spaces
Hay pocas configuraciones que definen si se usan espacios o pestañas.
Aquí hay funciones útiles que se pueden definir en su ~/.vimrc
archivo:
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
Uso:
:call UseTabs()
:call UseSpaces()
Para usarlo por extensiones de archivo, se puede usar la siguiente sintaxis (agregada a .vimrc
):
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
Ver también: Convertir pestañas en espacios .
Aquí hay otro fragmento de Wikia que se puede usar para alternar entre pestañas y espacios :
" virtual tabstops using spaces
set shiftwidth=4
set softtabstop=4
set expandtab
" allow toggling between local and default mode
function TabToggle()
if &expandtab
set shiftwidth=8
set softtabstop=0
set noexpandtab
else
set shiftwidth=4
set softtabstop=4
set expandtab
endif
endfunction
nmap <F9> mz:execute TabToggle()<CR>'z
Permite usar 4 espacios para cada pestaña y un mapeo F9para alternar la configuración.
Copié y pegué esto en mi archivo .vimrc:
" size of a hard tabstop
set tabstop=4
" always uses spaces instead of tab characters
set expandtab
" size of an "indent"
set shiftwidth=4
Las 2 primeras configuraciones significan que cuando presiono Tab obtengo 4 espacios. La tercera configuración significa que cuando lo hagoV>
(es decir, visual y sangría) también obtengo 4 espacios.
No es tan completo como la respuesta aceptada, pero podría ayudar a las personas que solo quieren algo para copiar y pegar.
Ponga la configuración deseada en el archivo ~ / .vimrc : consulte a continuación algunas pautas y prácticas recomendadas.
Hay cuatro formas principales de usar pestañas en Vim:
Mantenga siempre 'tabstop' en 8, establezca 'softtabstop' y 'shiftwidth' en 4 (o 3 o lo que prefiera) y use 'noexpandtab'. Luego, Vim usará una combinación de pestañas y espacios, pero al escribir y se comportará como si una pestaña apareciera cada 4 (o 3) caracteres.
Nota: Configurar 'tabulación' en cualquier otro valor que no sea 8 puede hacer que su archivo parezca incorrecto en muchos lugares (por ejemplo, al imprimirlo).
Establezca 'tabstop' y 'shiftwidth' a lo que prefiera y use 'expandtab'. De esta manera siempre insertarás espacios. El formato nunca se estropeará cuando se cambie 'tabstop'.
Establezca 'tabstop' y 'shiftwidth' a lo que prefiera y use | modeline | para establecer estos valores al editar el archivo nuevamente. Solo funciona cuando se usa Vim para editar el archivo.
Establezca siempre 'tabstop' y 'shiftwidth' en el mismo valor, y 'noexpandtab'. Esto debería funcionar (solo para las sangrías iniciales) para cualquier configuración de tabulación que las personas usen. Sin embargo, puede ser bueno tener pestañas después del primer espacio no vacío insertado como espacios si hace esto. De lo contrario, los comentarios alineados serán incorrectos cuando se cambie 'tabulación'.
Fuente:
:help tabstop
:help tabstop
en vim.
Una cosa más, utilice
:retab
para convertir existente tab
a spaces
http://vim.wikia.com/wiki/Converting_tabs_to_spaces
:set sw=4
Agregar línea
set ts=4
en el
~/.vimrc
archivo por usuario
o
/etc/vimrc
archivo para todo el sistema
Mi ~ / .vimrc básico con comentario:
set number " show line number
set tabstop=2 " set display width of tab; 1 tab = x space with
set expandtab " transform tab to x space (x is tabstop)
set autoindent " auto indent; new line with number of space at the beginning same as previous
set shiftwidth=2 " number of space append to lines when type >>
Permanente para todos los usuarios (cuando está solo en el servidor):
# echo "set tabstop=4" >> /etc/vim/vimrc
Normalmente en un nuevo servidor apt-get purge nano mc
y todos los demás para ahorrar tiempo. De lo contrario, redefinirá el editor en git
, crontab
etc.
F10
de nano
pero yo siempre hago algunos trucos con Save (tal vez F10
es una solución). o no funciona screen
? No puedo recordar, solo lo odio)