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