Configuración de Vim
Introducción
Después de varios años de uso de Vim me encuentro con que mi configuración es tan comleja que:
- No llego a entender ni la mitad de lo expuesto.
- No hay forma de exportarla a otras máquinas para que funcionen igual. Siempre hay una pequeña desviación del comportamiento que no consigo atinar.
- Tarda demasiado en cargar e ignoro lo razón, que es algo que me pone muy nervioso.
Objetivos
Pretendo conseguir lo siguiente:
- Características de edición idénticas (espacios, tabulados, copias de seguridad, ...).
- Resaltado de síntaxis de los fuentes que más utilizo: Perl, HTML y Markdown.
- Correción ortográfica de textos en varios idiomas.
- Apariencia física similar (quizás con pequeñas alteraciones dados los diferentes entornos de uso).
Partiré de una configuración vacía, es decir, sin un archivo $HOME/.vimrc
ni
subdirectorios de añadidos $HOME/.vim
.
El archivo de configuración final, el que agrupa todos los ejemplos, se puede encontrar directamente en el archivo.
Características de edición
" Cortar líneas cuando se alcancen 78
" caracteres de ancho
set textwidth=78
" activar autoindentación de párrafos
set autoindent
" Cambiar los tabulados a cuatro espacios en blanco,
" usar 4 espacios para la autoindentación,
" reemplazar los caracteres tabulado por espacios
" y redondear la indentación y el desplazamiento de bloques a
" múltiplos de 'shiftwidth'
set tabstop=4
set shiftwidth=4
set expandtab
set shiftround
" Histórico y cursor
set history=50
" mostrar la posicion del cursor en todo momento
set ruler
" Mostrar órdenes incompletas
set showcmd
" Activar búsqueda incremental
set incsearch
Empleando el ratón
" Selección y copia con el ratón
set selectmode += mouse
" Ocultar el ratón cuando escribimos
set mousehide
" Queremos que Shift+Insert funcione como en Xterm
map <S-Insert> <MiddleMouse>
map! <S-Insert> <MiddleMouse>
Resaltado de síntaxis
" Activamos el resaltado de síntaxis si no lo está aún
if !exists("syntax_on")
syntax on
endif
Síntaxis para archivos Markdown
Creamos un directorio especial para almacenar en él los archivos de datos del resaltador.
$ mkdir .vim/syntax
Descargamos el archivo de síntaxis y lo guardamos en el directorio anterior como
.vim/syntax/mkd.vim
.- Activamos la síntaxis manualmente:
- Escribiendo
:set filetype=mkd
durante la edición. - Añadiendo al final del archivo la siguiente estrofa:
# vim: syntax=mkd
- Escribiendo
Detectando el tipo de archivo
La documentación
oficial
muestra hasta cuatro formas diferentes de añadir nuevos tipos de archivos a
Vim
.
Particularmente me decanto por la tercera, basada en el nombre del archivo, y
que consiste en crear un archivo llamado .vim/filetype.vim
con instrucciones
como:
"
" Selector de tipo de archivo según nombre
"
" Si el tipo de archivo está definido terminamos
if exists("did_load_filetypes")
finish
endif
" Archivos markdown
augroup markdown
au! BufRead,BufNewFile *.mkd setfiletype mkd
au! BufRead,BufNewFile *.mdwn setfiletype mkd
augroup END
Corrector ortográfico
Apariencia
Por una parte tenemos los colores de pantalla, y por otra la tipografía si la sesión es gráfica.
Para los primero empleamos:
" Queremos que Vim determine qué colores claros irían
" bien con un fondo oscuro (siempre que dicho terminal
" tenga un fondo oscuro :-) )
set background=dark
" Elegimos una combinación de colores que
" nos guste (y que ya esté instalada)
colorscheme torte
y para lo segundo efectuamos antes una comprobación de entorno:
" Si tenemos un interfaz gráfico funcionando
if has("gui_running")
" Tipografía básica
set guifont=Bitstream\ Vera\ Sans\ Mono\ 12
" Línea de estado más útil
set statusline=%F\ %=<%l,%c%V>\ %P
endif
Enlaces y referencias
- Tutorial en inglés, muy vistoso y arreglado.
- Vim para programadores Perl.
- Configuración de VIM y algunos trucos de Albert Cardona.