6 de octubre de 2012

Mini-Tutorial de VIM

vim logo
(Photo credit: Wikipedia)
VIM es un potente editor de textos de UNIX, si estamos programando en Linux será una herramienta muy útil a la hora de trabajar, donde sólo esté permitido usar la consola de línea de comandos, como puede ser el caso al iniciar una sesión Telnet Segura (SSH) con un servidor remoto.


A continuación presentamos una Guía de Supervivencia de VIM, para los recién iniciados en GNU-Linux.

En la gran mayoría de las distribuciones Linux, ya viene instalado VIM, pero en el caso de que no esté instalado en Ubuntu, podemos usar el Repositorio de Software e instalarlo desde allí.
Al contrario, si estamos trabajando sobre Linux únicamente en modo consola, y no tenemos instalado VIM, podemos hacer una instalación completa usando el Advanced Package Tool (apt) de Debian:

   sudo apt-get install vim vim-scripts vim-doc vim-latextsuite vim-gui-com vim-gnome

Mini Guía de VIM

VIM tiene dos modos de trabajo:  Modo Comando y Modo Inserción. (también existe un modo visual)

En el "modo comando", también llamado modo normal, podemos ejecutar comandos propios de VIM o creados por nosotros mismos, y también hacer operaciones de edición con el archivo que hayamos abierto con VIM, pero no podremos escribir código directamente en él.

Para escribir código, debemos pasar al segundo modo de trabajo de VIM, es decir, usarlo en "modo inserción" o modo edición.

Revisar VIM en los distintos Modos

Para conocer VIM, como cualquier herramienta de software, no basta con sólo leer acerca de ella, sino utilizarla. Por lo tanto, detenga la lectura y vaya a su Linux y examine las siguientes acciones:
  • Iniciar VIM: Desde la terminal de Linux se ejecuta el comando "vim" junto al nombre del archivos con su extensión. VIM usa la extensión del archivo para saber el lenguaje con el cual se encuentra escrito el código, pues tiene resaltado de sintaxis, como cualquier editor de código respetable:

       vim nombre-archivo.extension 
  • Activar el Modo Normal: Se activa presionando la tecla "Esc", al iniciar VIM este aparece por defecto en Modo Normal.
  • Activar el Modo Inserción: Este modo permite la escritura de código y se activa presionando la tecla "Insert".

Principales Comandos

Los comando se ejecutan en el "modo comando" y se accede a él presionando la tecla "Esc". La mayoría de los comandos comienzan con ":" aunque no todos, los principales son:

:q!
   salir sin grabar del archivo actual.

:q
   salir del archivo actual, pero si han sucedido cambios en el archivo VIM mostrará una advertencia.

:w
   guarda el fichero actual.

:syntax on
   Activa el destacado de sintaxis, recordar que VIM usa la extensión del archivo para reconocer el lenguaje de programación utilizado.

:set number
   Activa la numeración de las líneas.

:set sw=3
   Establece una indentación de código a 3 espacios.

:set ts=3
   Establece una tabulación de código a 3 espacios.

:set cindent
   Establece una indentación automática al escribir código.

gg=G
   Para ejecutar un indentado automático de todo código del archivo actual.

yyP
   Duplica la línea actual.

u
   Anula el último cambio en el archivo actual.

$
   Para ir al final de la línea

:$
Ir al final del archivo actual.

:25
   Salta a la línea número 25 del código, la instrucción es muy simple sólo hay que colocar ":numero_de_linea" para saltar al número de línea en cuestión.

:g/^\s*$/d
   El comando ":g" busca una patrón, en este caso la expresión regular "^\s*$", que iguala a cualquier línea que se inicie y termine con el caracter "espacio en blanco" repetido cero o más veces en la misma línea.
La expresión regular debe delimitarse, para tal efecto se usa el signo "/". Finalmente, la letra "d" le indica la acción a realizar sobre las líneas que coincide con el patrón, en este caso, deben ser borradas.

Buscar y Reemplazar en VIM

Las opciones de buscar y reemplazar son especialmente potentes en VIM, pues aceptan inclusive expresiones regulares como patrón de búsqueda y reemplazo:

:s/house/casa/g
   Busca la palabra "house" y la reemplaza por "casa", sólo en línea actual.

:%s/house/casa/g
   Busca la palabra "house" y la reemplaza por "casa", en todo el archivo.

:10,25s/house/casa/g
   Busca la palabra "house" y la reemplaza por la palabra "casa", sólo en el texto situado entre las líneas 10 y 25, inclusive las líneas 10 y 25.

Trabajando con varios archivos en VIM

En la mayoría de los casos, estaremos editado sobre más de un archivo, así que esta característica de VIM es muy necesaria.

:tabnew nombre_archivo.extension
   Carga un nuevo archivo en VIM, esta valiosa característica facilita la edición de varios archivos dentro del mismo entorno de edición, emulando en alguna medida a los editores gráficos. Cambiamos de archivo usando el comando "gt".

:wall
   Guarda todos los archivos actualmente cargados en VIM.

:qall!
   Salir de VIM y cerrar todos los archivos sin grabar.

Ejecutar comando del Shell dentro de VIM

Esta es una práctica característica de VIM, que permite correr comandos del sistema operativo usando ":![nombre_del_comando]", por ejemplo:

:!pwd
   Muestra el directorio actual

:!ls -la
   Muestra la lista de archivos y directorio con todos sus detalles.

VIM también tiene un "history" (historial) que puede usar presionando las teclas de flecha hacia arriba o abajo, al igual que sucede en la línea de comandos tradicional de Linux. Además, VIM en el modo de Inserción dispone de un AUTOCOMPLETADO DE CÓDIGO, se usa inicia con las teclas "Ctr + n" que desplegará las sugerencias.

Configurando a VIM

Si desea evitarse escribir ciertas opciones, que desea mantener por defecto en VIM, debe establecer en el archivo de configuración de este editor.
Por ejemplo, para establecer el resaltados de sintaxis, deje ejecutar desde el terminal de Linux el comando:

   sudo vim /etc/vim/vimrc

Y ubicar la línea:
"syntax on

Y cambiarla por:
syntax on

Es es todo!... como hemos visto, VIM es un editor poderoso, pero eso no significa que aprender a usarlo sea difícil. Tan sólo usando esta Mini-Guía de VIM, podrá iniciarse con facilidad en el uso de esta herramienta.
Recuerde, que sólo hemos mostrado la  punta del iceberg y queda en sus manos sacarle todo el provecho de esta esencial herramienta en el desarrollo web en Linux.

Puede revisar el manual de VIM, simplemente desde la línea de comando ejecute:

   man vim

Por último VIM dispone de un tutorial que se puede acceder con:

vimtutor

Mas Información acerca de VIM

Para una lista más completa de la descrita en esta Mini-Guía, visite el enlace:
Y para comprobar la potencia de la búsqueda y reemplazo de texto lea este artículo: