Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > software > Configuración de Vim

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:

  1. No llego a entender ni la mitad de lo expuesto.
  2. 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.
  3. 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

  1. Creamos un directorio especial para almacenar en él los archivos de datos del resaltador.

    $ mkdir .vim/syntax
    
  2. Descargamos el archivo de síntaxis y lo guardamos en el directorio anterior como .vim/syntax/mkd.vim.

  3. 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

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

PENDIENTE DE COMPLETAR

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