vimrc indent vim whitespace indentation vi auto-indent

indent - vimrc linux



Tecla de tabulación== 4 espacios y sangría automática después de llaves en Vim (9)

Como se ha señalado en un par de respuestas a continuación, el método preferido ahora NO es usar smartindent, sino el siguiente (en su .vimrc ):

filetype plugin indent on " show existing tab with 4 spaces width set tabstop=4 " when indenting with ''>'', use 4 spaces width set shiftwidth=4 " On pressing tab, insert 4 spaces set expandtab

En tu archivo .vimrc :

set smartindent set tabstop=4 set shiftwidth=4 set expandtab

Los archivos de ayuda toman un poco de tiempo para acostumbrarse, pero cuanto más lees, mejor se pone Vim:

:help smartindent

Aún mejor, puede incrustar estas configuraciones en su fuente para la portabilidad:

:help auto-setting

Para ver su configuración actual:

:set all

Como señala graywh en los comentarios, smartindent ha sido reemplazado por cindent que "Funciona de forma más inteligente", aunque aún es principalmente para lenguajes con sintaxis tipo C:

:help C-indenting

¿Cómo puedo hacer vi ? Vim nunca usa tabulaciones (¡convertir espacios en tabulaciones, mal!), Hace que la tecla de tabulación == 4 espacios, y haga sangría automática de código después de bloques de llaves como Emacs

Además, ¿cómo guardo estos ajustes para no tener que ingresarlos nunca más?

He visto otras preguntas relacionadas con esto, pero siempre parece estar un poco alejado de lo que quiero.


Desde el wiki de VIM :

:set tabstop=4 :set shiftwidth=4 :set expandtab


En muchos sistemas Linux, como Ubuntu, el archivo .vimrc no existe de forma predeterminada, por lo que se recomienda que lo cree primero.

No utilice el archivo .viminfo que existe en el directorio de inicio. Se utiliza para un propósito diferente.

Paso 1: Ve a tu directorio personal

cd ~

Paso 2: Crea el archivo

vim .vimrc

Paso 3: Agregue la configuración indicada arriba

filetype plugin indent on set tabstop=4 set shiftwidth=4 set expandtab

Paso 3: Guardar archivo, presionando Shift + ZZ .


La forma recomendada es usar sangría basada en el tipo de archivo y solo usar smartindent y cindent si eso no es suficiente.

Agrega lo siguiente a tu .vimrc

set expandtab set shiftwidth=2 set softtabstop=2 filetype plugin indent on

Espero que sirva de ayuda como respuesta diferente.


La mejor manera de obtener una sangría específica para un tipo de archivo es usar la filetype plugin indent on en su vimrc. Luego, puede especificar cosas como set sw=4 sts=4 et en .vim / ftplugin / c.vim, por ejemplo, sin tener que hacerlos globales para todos los archivos que se editan y otras sintaxis de tipo no C se sangrarán correctamente, también (incluso lisps) .


La sangría automática se basa en el modo de sintaxis actual. Sé que si está editando Foo.java, luego ingrese { y presione Enter en la siguiente línea.

En cuanto a las pestañas, hay dos configuraciones. Dentro de Vim, escriba dos puntos y luego "establecer tabstop = 4" que establecerá las pestañas para mostrar como cuatro espacios. Presione dos puntos de nuevo y escriba "set expandtab" que insertará espacios para las pestañas.

Puede poner estas configuraciones en un directorio .vimrc (o _vimrc en Windows) en su directorio de inicio, por lo que solo tiene que escribirlas una vez.


Para tener pestañas de 4 espacios en la mayoría de los archivos, caracteres de tabulación de 8 anchos en Makefiles y sangría automática en varios archivos, incluido C / C ++, ponga esto en su archivo ~/.vimrc :

" Only do this part when compiled with support for autocommands. if has("autocmd") " Use filetype detection and file-based automatic indenting. filetype plugin indent on " Use actual tab chars in Makefiles. autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab endif " For everything else, use a tab width of 4 space chars. 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.


Relacionado, si abres un archivo que usa tanto pestañas como espacios, asumiendo que tienes

set expandtab ts=4 sw=4 ai

Puede reemplazar todas las pestañas con espacios en todo el archivo con

:%retab


edita tu ~ / .vimrc

$ vim ~/.vimrc

añadir las siguientes líneas:

set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab