Tag Archives: vim

Trucos básicos usando el editor Vim

vim logoPersonalmente uso kate o kwrite como editor simple, para tomar pequeñas notas, etc. Pero para programar o editar ficheros de configuración del sistema no dudo en usar VIM. No voy a profundizar en el uso de este editor, si no te suena de nada el nombre probablemente este artículo no te interese en absoluto. El hecho es que VIM, o cualquiera de los clones de vi, es un editor muy potente. Al contario de lo que parece a simple vista.

Mucha gente usa vi sólo cuando es estrictamente necesario, y de hecho es comprensible, tener un editor que funcione en modo texto puede ser de mucha utilidad si no funciona el entorno gráfico, o si editas ficheros de otro ordenador remotamente. Este artículo va destinado a aquella gente que ya usa VIM, pero no se ha leido la documentación ni la ayuda. Quiero insistir en que esto que voy a describir es MUY BÁSICO, este editor puede hacer muchísimo más. Avisados estáis… empezamos:

Cambiar de modo

Pulsando la tecla <i> entramos en el modo de inserción (para editar el texto), pulsando la tecla <ESC> entramos en el modo comandos, si estando en modo comandos escrivimos <:> (dos puntos), entramos en el modo línea de comandos de VIM, en él podemos hacer cosas más complejas.

Guardar, Salir, etc

Vamos a guardar el archivo:

:w

Como véis, la orden empieza por <:>, por lo tanto, primero hemos pulsado <ESC> para entrar en modo comandos. Si queremos darle otro nombre al archivo:

:w nuevo_nombre.txt

Para salir del editor:

:q

Si hemos hecho cambios no nos deja salir, aquí tenemos dos opciones, la primera es salir sin guardar:

:q!

La segunda es guardar, antes lo hemos hecho con <:w>, pero podríamos guardar y salir en un solo comando:

:wq

E incluso hay otro comando que hace lo mismo, pero no sobreescribe el archivo si no hay cambios, este es el más comodo para salir guardando cambios:

 :x 

Borrar en modo comando:

Ahora estamos en modo comando (tecla <ESC>), sin usar los dos puntos <:>. Si queremos eliminar el siguiente carácter debajo del cursor podemos pulsar x, con X eliminaríamos en anterior. Si pulsamos dd eliminamos la línea actual entera. Con dw eliminamos todos los caracteres hasta el final de la palabra actual, si estamos en un espacio en blanco, hemos eliminado la siguiente palabra del texto. ¿Con d3w que hacemos? El propio comando lo dice: delete 3 words. Con 5dd eliminamos 5 líneas enteras. Y por aquí va el asunto, la gracia está en aprender a combinar los comandos entre ellos.

Deshacer:

Si pulsamos la letra u deshacemos lo último que hemos hecho. Si pulsamos u repetidamente vamos retrocediendo. Con U afectaría solo a la línea actual.

Repetir:

Con el carácter . (punto) se repite el último comando realizado, sea cual sea.

Copiar, Cortar y Pegar:

¿He dicho que d elimina? Pues es completamente falso. Todo lo que eliminamos con d, dd, dw, etc se guarda en un buffer. Esto sirve, por ejemplo, para que usemos u para deshacer como acabo de explicar, pero también nos permite pegar el contenido eliminado, lo que popularmente se conoce como Cortar y Pegar. El comando y funciona igual que d, pero a diferencia de este último, guarda el contenido en el buffer sin eliminarlo, por lo que es un qeuivalente al típico Copiar: yy copia la línea actual, yw copia una palabra, 10yy copia un bloque de 5 líneas de texto, etc.

Ahora que hemos puesto información en el buffer, ya sea eliminada con d o copiada con y, sólo tenemos que pulsar p para Pegar.

Buscar cadenas de texto:

Si en modo comando (tecla <ESC>) escribimos:

/palabra

Y pulsamos enter, el editor buscará palabra en el texto y lo marcará para que lo veamos. Con la letra n se repite la búsqueda hacia adelante, con la letra N se repite hacia atrás.

Además, si pulsamos el asterisco * en modo comando en cualquier momento, se remarcarán todas las coincidencias con la palabra actual debajo del cursor.

Para programadores:

La función de autocompletado es quizás la más destacada, todos los IDEs de programación lo soportan, pues VIM también. Empezamos a escribir una función y pulsamos Control + n, se despliega una lista de todas las funciones que empiezan igual.

Otro truco muy útil es el salto hacia adelante y hacia atrás entre bloques de programación. Si nuestro lenguaje define estos bloques con { … } o ( … ) por ejemplo, nos podemos situar encima de un inicio de bloque, el carácter {, luego pulsamos % y nuestro cursor salta directamente hacia el carácter } más cercano. Si volvemos a pulsar % haremos lógicamente el salto hacia atrás.

Si en modo comandos escribimos ! (exclamación), podemos ejecutar comandos de shell dentro de VIM, al terminar la ejecución en shell volvemos al estado de editor.

El comando definitivo:

Espero que este artículo le sea útil a alguien, de todas formas hay un comando que supera a todos los demás. Por eso lo he reservado hasta el final:

:help

Con el comando <:help> entramos en la ayuda de VIM, que consta de un tutorial muy completo, de estos de seguir paso a paso. Esto es la mejor forma de aprender a usar este magnífico editor de texto.