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=mkddurante 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.
 
            




