# Índice - [Índice](#índice) - [Guia rápida de Vim](#guia-rápida-de-vim) - [Archivo de configuración](#archivo-de-configuración) - [Archivo .viminfo](#archivo-viminfo) - [Cheatsheet de Vim](#cheatsheet-de-vim) # Guia rápida de Vim Vim (del inglés Vi IMproved) es una versión mejorada del editor de texto Vi, presente en todos los sistemas UNIX. Su autor, Bram Moolenaar, presentó la primera versión en 1991, fecha desde la que ha experimentado muchas mejoras. La principal característica tanto de Vim como de Vi consiste en que disponen de diferentes modos entre los que se alterna para realizar ciertas operaciones, lo que los diferencia de la mayoría de editores comunes, que tienen un solo modo en el que se introducen las órdenes mediante combinaciones de teclas o interfaces gráficas. *Gracias wikipedia [https://es.wikipedia.org/wiki/Vim](https://es.wikipedia.org/wiki/Vim)* ## Archivo de configuración El archvio se llama `.vimrc` y lo podremos encontrar én distintos path según distro. En ubuntu: ``` /etc/vim/vimrc ``` En RHEL y derivadas: ``` /etc/vimrc ``` Veremos algo así: ![](vimrc.png) *Documentación oficial de vimrc: http://vimdoc.sourceforge.net/htmldoc/usr_05.html* Algunos parámetros ejemplo para vimrc: - Mostrar con colores los ficheros: ``` systax on ``` - El siguiente bucle consigue que cuando vuelvas a abrir un archivo este el cursor en el mismo sitio que cuando lo cerraste. ``` if has("autocmd") au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif endif ``` - Para la compatibilidad de los colores de vim con una terminal oscura se utiliza la siguiente opción. ``` set background=dark ``` ## Archivo .viminfo Para utilizar Viminfo, primero necesita tener la funcionalidad +viminfo disponible (:version). Viminfo almacena: - El historial de la línea de comando - El historial de búsqueda de cadenas de texto - El historial de línea de entrada - El contenido de los registros no vacíos - Las marcas de diversos archivos - El archivo de marcas, apuntando a la ubicación en los archivos - El último patrón de búsqueda/sustitución (para 'n' y '&'). - La lista de *buffer - Las variables globales En general, las sesiones almacenan los atributos "externos" y Viminfo los atributos "internos". ## Cheatsheet de Vim Para editar y salir de la edicción ``` i o INSERT Entrar en modo edicción del texto ESC Salir del modo. ``` Para entrar en el modo visual ``` v Entrar en modo visual ESC Salir del modo ``` Los comandos se añaden con `:` delante. Por ejemplo, si queremos ver el número de línea en los documentos: ``` :set nu ``` Para cambiar el modo de los colores: ``` :set background=[dark|light|...] ``` Para forzar cualquier comando se le puede añadir `!`. Guardar y cerrar ``` :w Permite guardar el fichero. :q Salir de Vim. Si el fichero ha sido modificado pero no se ha guardado, nos advertirá y no podremos salir de Vim usando este comando. :q! Salir de Vim, descartando posibles cambios no guardados que se hayan realizado en el fichero. :wq o :x Hace el guardado del archivo y después sale de Vim. ``` Deshacer y rehacer u – Deshacer acción. Ctrl+r – Rehacer una acción. Borrar o cortar, copiar, pegar líneas ``` dd Borra la línea actual, donde está el cursor, pero en realidad las corta. d+num+d Borra el número de líneas que se indique. Pero en realidad las corta. yy Copiar la línea actual. y+num+y Copiar el número de líneas que se indique. p Pegar ``` Mover el cursor ``` h mover un carácter a la izquierda j mover una fila hacia abajo k mover una fila hacia arriba l mover un carácter a la derecha w mover al principio de la siguiente palabra b mover al principio de la palabra anterior e mover al final de la palabra W mover al principio de la siguiente palabra después de un espacio en blanco B mover al principio de la palabra anterior antes de un espacio en blanco E mover al final de la palabra antes de un espacio en blanco ``` Todos los movimientos anteriores pueden ir precedidos de una cuenta; por ejemplo, `4j` se mueve hacia abajo 4 líneas. ``` 0 se mueve al principio de la línea $ se mueve al final de la línea _ mover al primer carácter no en blanco de la línea g_ mover al último carácter no en blanco de la línea gg mover a la primera línea G pasar a la última línea ngg se mueve a la n'ª línea del archivo nG ir a la nª línea del fichero H mover a la parte superior de la pantalla M mover a la mitad de la pantalla L mover a la parte inferior de la pantalla zz desplazar la línea con el cursor al centro de la pantalla zt desplazar la línea con el cursor hacia arriba zb desplazar la línea con el cursor hacia abajo Ctrl-D mover media página hacia abajo Ctrl-U mover media página hacia arriba Ctrl-B subir página Ctrl-F bajar de página Ctrl-O saltar a la última posición del cursor (más antigua) Ctrl-I saltar a la siguiente posición del cursor (después de Ctrl-O) Ctrl-Y mover el panel de vista hacia arriba Ctrl-E mover el panel de vista hacia abajo ``` Búsquedas ``` /+texto Al pulsar «/» se abre la función de búsqueda. Entonces podremos escribir el texto que queremos buscar. n siguiente patrón de búsqueda coincidente N patrón de búsqueda anterior * siguiente palabra entera bajo el cursor # palabra entera anterior bajo el cursor g* siguiente patrón de búsqueda coincidente (no es una palabra entera) bajo el cursor g# patrón de búsqueda anterior (no palabra entera) bajo el cursor gd ir a la definición/primera aparición de la palabra bajo el cursor % saltar al corchete coincidente { } [ ] ( ) fX a la siguiente 'X' después del cursor, en la misma línea (X es cualquier carácter) FX a la anterior 'X' antes del cursor (f y F ponen el cursor en X) tX hasta la siguiente 'X' (similar a la anterior, pero el cursor está antes de la X) TX hasta la 'X' anterior ; repite lo anterior, en la misma dirección , repetir lo anterior, en dirección inversa ``` Para más detalles se puede ver la ayuda ``` :h :help {command} (por ejemplo, :help g_). ``` ![](VIM-Cheat-Sheet.jpg) Curso completo de vim: https://victorhck.gitbook.io/aprende-vim/