viernes, 6 de marzo de 2009

HAL y vim (IX)

Hemos llegado prácticamente al final. El único menú de un procesador de texto que nos quedaría por considerar es el menú "Opciones", que en OpenOffice Writer 2.4 es una subsección del menú "Herramientas". Este menú aglutina aquellas opciones de configuración activas en toda sesión de trabajo con el procesador de texto.

Sabemos desde el principio de estas conversaciones que en el mundo de HAL las configuraciones permanentes se guardan en ficheros de texto, que las configuraciones globales residen en el directorio /etc y que las configuraciones de usuario se establecen en un fichero dentro de su home. Vim no podía ser menos. La ruta del fichero de configuración global es /etc/vim/vimrc. Todo usuario puede, además, crear su propio fichero de configuración .vimrc y añadir nuevas configuraciones o sobrescribir las existentes en el vimrc del sistema.

Así pues, nuestra única tarea pendiente es recopilar las configuraciones que hemos ido estudiando los días pasados, incluidas las asociaciones de teclado, y escribirlas en nuestro .vimrc particular. Añadiremos, además, los oportunos comentarios para facilitar la localización y comprensión futura de las opciones establecidas. [El signo de apertura de comentario para el fichero vimrc no es la habitual almohadilla (#), sino la comilla doble (")].

Utilizaremos, cómo no, el propio Vim para editar nuestro fichero de configuración:

vim ~/.vimrc


" ========================================================
" -- ~/.vimrc: Fichero de configuración personal de Vim --
" -- (átopos, 06/03/09) --
" ========================================================

" -- OPCIONES GENERALES --
" Activa resaltado de sintaxis
syntax on

" Selecciona esquema de color 'zellner'
colorscheme zellner

" Introduce salto de línea automático según el ancho del terminal
set wrapmargin=7

" -- ASOCIACIONES DE TECLADO --
" La tecal F2 muestra/oculta números de líneas
map <F2> <Esc>:set invnumber<CR>

" La tecla F3 muestra/oculta caracteres no imprimibles
map <F3> <Esc>:set invlist listchars=eol:$,tab:>-,trail:-<CR>

" La tecla F7 abre el corrector ortográfico
map <F7> <Esc>:w<CR>:!aspell -c % -l es<CR>:e! %<CR>

" La tecla F10 muestra una vista previa de impresión
map <silent> <F10> <Esc>:hardcopy > vim_preview.ps<CR>:silent !okular vim_preview.ps<CR>:silent !rm vim_preview.ps<CR>


Este fichero define, en unos pocos casos, órdenes ligeramente distintas a las creadas y explicadas en los artículos a los que apuntan sus enlaces.

La primera y más importante diferencia es que ya no es necesario anteponer el carácter de dos puntos al inicio de la orden. Vim lo presupone en todas las órdenes que se incluyen en .vimrc.

En segundo lugar, se ha procurado que las teclas de función en las asociaciones de teclado estén organizadas de un modo más inteligente, por ejemplo, para que no podamos pulsar por error la tecla de revisión ortográfica cuando el objetivo es activar los números de líneas. Separar suficientemente teclas tan diferentes en su función y comportamiento hace que la interfaz sea más cómoda de usar. Por otra parte, las teclas F7 y F10 emulan los atajos que proporciona OpenOffice Writer para las mismas funciones asociadas.

En tercer lugar, se ha propuesto un esquema de color de ejemplo. El usuario debería seleccionar el suyo de acuerdo a sus gustos, o no establecer ninguno en concreto y confiar en el esquema de color que por defecto activa Vim.

Finalmente, se ha añadido una asociación de teclado para la vista previa de impresión, no comentada en el artículo correspondiente. El lector debería ser capaz de entender por sí mismo todo su contenido salvo las expresiones silent:

:map <silent> <F10> <Esc>:hardcopy > vim_preview.ps<CR>:silent !okular vim_preview.ps<CR>:silent !rm vim_preview.ps<CR>

La primera de ellas (<silent>) evita que el nombre de la orden asociada aparezca en la barra de estado al ejecutarse. Las otras dos, antepuestas a las llamadas a órdenes externas de HAL, silencian los mensajes que tales órdenes emiten y que se muestran normalmente en la barra de estado. (Semejantes expresiones pueden utilizarse igualmente en el resto de asociaciones según conveniencia del lector.)

Puede ser útil, antes de terminar, abarcar en un sólo golpe de vista los menús del procesador de textos tal como han sido expuestos en estos artículo ---teniendo en cuenta, además, la configuración inicial que acabamos de establecer--- y resumir las órdenes o asociaciones de teclado que corresponderán en nuestra configuración de Vim a las funciones características de esos menús. [Cuando haya varias órdenes relacionadas con una misma función, se presentan en líneas distintas; si hay muchas, se incluyen sólo algunas (las más fáciles de aprender, quizá, para un principiante). Cuando hay órdenes equivalentes se da sólo una de ellas]:

Archivo
Nuevovim nuevo_fichero
Abrirvim ruta_fichero
Cerrar:wqGuarda cambios y cierra
:q!Cierra sin guardar cambios
Guardar:w
Guardar como:saveas fichero[Ver primer comentario a HAL y vim (II)]
Imprimir:hardcopyEnvía a impresora
F10Vista previa
Edición
Deshaceru
RestaurarCtrl+R
Repetir última orden.
CortarxCorta un carácter
dwCorta una palabra
ddCorta una línea
CopiarywCopia una palabra
yyCopia una línea
Pegarp
Seleccionar textovModo visual
Buscar y remplazar:%s/pat/rem/gcSustituye 'pat' por 'rem' en todo el documento
Ver
Fuente[Configurada en terminal]
Colores[Configurados en '.vimrc']
Barra de estado[Activada por defecto]
Número de líneasF2
Caracteres no imprimiblesF3
Ajustar texto[Configurado en '.vimrc']
gqGAjusta líneas en todo el documento
Herramientas
Corrección ortográficaF7
Ordenar:n,m sortOrdena alfabéticamente las líneas de la n a la m, inclusives
Mayúsculas~Pone carácter en mayúscula
gUwPone palabra en mayúsculas
gUUPone línea en mayúsculas
Minúsculas~Pone carácter en minúscula
guwPone palabra en minúsculas
guuPone línea en minúsculas


Esta tabla de relaciones, junto con el fichero .vimrc propuesto hoy y la tabla de órdenes de movimiento e inserción directa expuesta en este otro artículo constituyen una tríada de herramientas iniciales que permiten, cuando menos, realizar las misma operaciones básicas de edición que con un procesador de textos. Es un primer paso para ir alejándose progresivamente de la influencia del procesador de textos y poder disfrutar de las bondades de un editor hecho y derecho.

Al principiante le bastará con memorizar todas las órdenes citadas en la tabla de hoy y adquirir destreza con algunas de las órdenes de movimiento e inserción propuestas días pasados para ir ganando confianza con Vim. Comprenderá poco a poco como su fichero de configuración puede ir adaptándose de un modo cada vez más preciso a sus necesidades y dejará de establecer comparaciones entre Vim y los procesadores de textos. Este será el momento de aventurarse por su cuenta en el verdadero mundo de Vim, en su mina de oro, en el esplendor del "palacio del enano" del que nosotros sólo hemos entrevisto un muy lejano destello.

No hay comentarios:

Publicar un comentario