Configurando vi o vim

Como configurar vi o vim, ese editor que todos los U**X tienen y que tantos dolores de cabeza le dan al usuario inexperto.

Dentro de los distintos modos de edición del editor vim, se pueden poner configuraciones generales para que cada que se abra un archivo se tomen estas configuraciones y sea más agradable el uso del editor y la edición de archivos.

Basta señalar que sólo hay que editar el archivo ~/.vimrc y cualquier cambio se aplicará directamente al editor sin importar el archivo que se esté editando.

Por ejemplo, el siguiente archivo .vimrc con la siguiente configuración:

set nocompatible
set mouse-=a 
filetype on
filetype plugin on
filetype indent on
syntax on
set number
set shiftwidth=4
set tabstop=4
set expandtab
set smartindent
set softtabstop=4
set nowrap
set incsearch
set hlsearch
set showmatch
set wildmenu
set wildmode=list:longest
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx,*.bin,*.tar,*.gz,*.rar,*.so[.0]
set laststatus=2
set statusline=
set statusline+=\ %F\ %M\ %Y\ %R
set statusline+=%=
set statusline+=\ ascii:\ %b\ hex:\ 0x%B\ row:\ %l\ col:\ %c\ percent:\ %p%%
set spelllang=es_mx
set spell
set scrolloff=20
colorscheme desert
set autoindent
set nosmarttab
Cada una de las opciones aquí descritas hace lo siguiente:

nocompatible .- el comportamiento de vim es igual al de vi, en este caso es distinto ya que está en modo nocompatible
mouse-=a .- Desactiva el uso del ratón en todos los modos de vim.
filetype on .- se activan los autocomandos para cada tipo de archivo
filetype plugin on .- se activan los plugins para el tipo de archivo modificado
filetype indent on .- se activan las indentaciones (separaciones) dependiendo el tipo de archivo
syntax on .- Se activa la sintaxis dependiendo el tipo de archivo editado
number .- Se visualizan en el lado izquierdo de la pantalla el número de línea del archivo
shiftwidth .- Es el número de espacios usados para autoindentar el archivo
tabstop .- Número de espacios que la tecla de tabulador usará al editar el archivo.
expandtab .- Es el número de espacios que se insertan en lugar del tabulador
smartindent .- Al iniciar una nueva línea conserva la indentación que se lleva de la línea anterior.
softtabstop .- Número de espacios que el tabulador cuenta cuando se usa la tecla Tab o el backspace
nowrap .- Cuando la línea es más grande que la pantalla vim la muestra en la siguiente línea, con esto se evita ese comportamiento.
incsearch .- Mientras se teclea va buscando el texto que cumple el criterio de búsqueda.
hlsearch .- Ilumina todas las palabras que cumplen con el criterio de búsqueda.
showmatch .- Cuando se inserta una llave brevemente brinca al cierre de la misma.
wildmenu .- Muestra un menú con los comandos que son posibles usar.
wildmode .-Ayuda a completar las líneas de comando al usar la tecla tabulador (similar a Bash)
wildignore .- Una lista de patrones de archivos que se ignoraran al editarlos con vim
statusline .- Muestra una línea de estado con información acerca del archivo editado, más información y formatos :help statusline
laststatus .- información relacionada cuando se están editando varios archivos.
spelllang .- idiomas a usar cuando se hace una revisión ortográfica.
scrolloff .- mínimo número de líneas a mantener arriba y abajo del cursor, cuando se llega al final del archivo.

Mas información.

:help options

¿Cómo agregar ciertos tipos de configuración de vim a un archivo especifico?

Por ejemplo: Al editar archivos python suelo agregar lo siguiente al final de dicho archivo, esto te permite indentar (espaciar) el archivo con las reglas propias del python.

# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: