[Actualizado: 21 de Noviembre, 2009] Aquí iré poniendo los trucos o combinaciones de teclas que más uso por si alguna vez se me olvidan.
Edicion- A : Mueve el cursor al final de la línea en modo inserción.
- I : Mueve el cursor al primer carácter no blanco de la línea en modo inserción.
- C : Borra lo que queda de linea y cambia a modo inserción.
- cc : Borra la linea actual y cambia a modo inserción.
- J : Une varias líneas.
- gU / gu : Convierte el texto seleccionado a mayúsculas / minúsculas.
- CTRL-A:
Suma uno (o un número) a la cifra bajo el cursor. Para que funcione en
Windows antes hay que mapear CTRL-A a sus valores por defecto mediante
:nunmap <C-A>
- CTRL-X: Resta uno (o un número) a la cifra bajo el cursor.
- . : Repite la última modificación.
- dd : Borra la línea actual o tantas como le indiquemos.
- D : Borra lo que queda de linea.
Movimiento- gg : Nos lleva al principio del buffer.
- G : Sin número delante nos mueve al final del buffer. Con número delante nos lleva a esa línea.
- 0 / $ : Mueve el cursor al principio / final de la línea.
- ^ : Mueve el cursor al primer carácter no blanco de la línea. En los teclados españoles es necesario pulsar la tecla dos veces.
- '. : Nos lleva a la última línea modificada. Muy útil para programación.
- f {carácter} :
Nos
lleva a la siguiente ocurrencia hacia la derecha del carácter. Muy útil
para avanzar rápidamente a cierta posición de la línea. Para continuar
buscando hacia la derecha pulsar ;
- { / } : Nos lleva al principio / final del párrafo.
- ( / ) : Nos lleva al principio / final de la frase.
- H / M / L : Posiciona el cursor al principio / medio / final de la pantalla.
Objetos de TextoEsta serie de comando sólo pueden usarse en el modo visual o después de un operador. Por ejemplo, con dip borramos el párrafo actual (¡muy util!), con yiw copiamos la palabra actual y con vis seleccionamos la frase actual.
Si en vez de usar i (de inner) usamos a ejecutaremos el operador también sobre los espacios o lineas en blanco adyacentes.
- ip : Ejecuta el operador para el párrafo actual.
- is : Ejecuta el operador para la frase actual.
- iw : Ejecuta el operador para la palabra actual.
Modo visual- V : Empieza el modo visual por líneas. Yo lo uso para seleccionar de forma rápida la línea actual (y las adyacentes).
- <CTRL-V>:
Empieza el modo visual por columnas. Este modo nos permite seleccionar
texto de manera vertical. En Windows la combinación de teclas es <CTRL-Q>. Esta opción es muy útil y muy rara de encontrar en otros editores.
Copiar y pegar- y : Copia el texto seleccionado en el registro.
- yy : Copia la línea actual en el registro.
- p : Pega el texto del registro.
- ggyG : Copia todo el texto al registro.
Ventanas y vistas
- zt / zz / zb : Posiciona la línea actual arriba/centro/abajo de la pantalla.
- :sp : Divide la pantalla en dos vistas.
- :vsp : Lo mismo que :sp pero en vertical.
- <CTRL-w> <CTRL-w> : Nos mueve a la siguiente vista.
- <CTRL-W> [H,J,K,L] : Mueve la vista hacia la posición indicada.
- <CTRL-W> _ : Agranda al máximo la ventana actual.
- <CTRL-W> = : Pone al mismo tamaño todas las ventanas.
Buscar y remplazar - :%s/buscar/reemplazar/icg : Reemplaza la cadena en todo el buffer.
- :bufdo %s/buscar/reemplazar/ge : Reemplaza la cadena en todos los buffers
- n / N : Nos lleva a la siguiente / anterior coincidencia de la búsqueda.
- * : Busca todas las palabras que coincidan con la palabra que tengamos bajo el cursor.
- grep palabra *.c
: Busca en todos los ficheros con extensión .c del directorio actual (aunque no estén
abiertos con Vim) la palabra y muestra el resultado en pantalla.
- :%s/buscar/ng : Cuenta el número de coincidencias.
Multiples buffers - :set hidden : Para trabajar cómodamente con múltiples buffers es imprescindible activar esta opción. Si no, no nos permite abandonar un buffer sin guardarlo previamente.
- :ls : Lista todos los buffers.
- :b filename : Nos lleva al buffer llamado filename. Este comando permite autocompletar pulsando <TAB>.
- <CTRL-6> : Nos lleva al buffer del que venimos (atajo de :b#). Muy util!
- :n *.c *.h : Abre todos los ficheros .c y .h del directorio actual y salta al siguiente buffer.
- :bn / :bp : Va al siguiente / anterior buffer de la lista de buffers.
- :bd : Elimina el buffer de la lista de buffers
- :sp fichero : Abre el fichero y divide la pantalla para que quepa el nuevo buffer.
- :e fichero : Abre el fichero. Interesante la posibilidad de autocompletar el nombre del fichero con <TAB>.
- gf : Abre el fichero que tengamos sobre el cursor.
- :wall : Guarda los cambios en todos los buffers.
- :sba : Abre todos los buffers que tengamos en la lista de buffers dividiendo la pantalla para que quepan todos.
- :Ex : Abre el explorador de ficheros en la pantalla actual.
- :bufdo comando : Ejecuta el comando en toda la lista de buffers.
Tags (etiquetas)
El uso y configuración de tags lo explico de forma más detallada en el artículo Usando tags.
- CTRL-] : Salta al tag de la palabra que tenemos en el cursor.
- CTRL-T : Retrocede al tag anterior.
- CTRL-W } : Nos muestra la definición de la función que tenemos bajo el cursor en la ventana preview.
- :pc : Cierra la ventana preview
Autocompletado- <CTRL-P> / <CTRL-N>
: Autocompleta la palabra que estamos escribiendo con ocurrencias
anteriores / posteriores. Para pasar a la siguiente ocurrencia volvemos
a pulsar la combinación de teclas.
- <C-X><C-L> : Autocompleta la línea entera.
- <CTRL-X> <CTRL-O> : Autocompleta de forma inteligente mediante Omni-Completion. Explico su configuración y uso en el artículo Completado inteligente.
Programación- % : Nos lleva a la pareja {}[]() que corresponda con el elemento bajo el cursor.
- gD : Nos lleva a la declaración global de la variable.
- gg=G : Indenta correctamente todo el buffer.
- :make : Compila el programa invocando al compilador predeterminado.
- :comp! ant : Asigna a Ant como el compilador predeterminado para todos los buffers.
Ventana quickfix- :cope : Abre la ventana quickfix mostrándonos la lista de items.
- :ccl : Cierra la ventana quickfix.
- :cn : Nos lleva al siguiente item de la pantalla quickfix.
- :cp : Nos lleva al anterior item de la pantalla quickfix.
Sesiones- :mks [fichero] : Guarda la sesión actual en formato script de Vim. Si se omite el fichero lo guarda con el nombre Session.vim.
- :so fichero
: Restaura la sesión guardada. Al recuperar una sesión obtenemos los
mismos tamaños de ventana, pliegues, marcas, listas de buffers, etc...
que hayamos guardado. Muy útil para proyectos de código.
Tabs (pestañas)
- :tab sba : Pone en pestañas todos los buffers.
Foldings (pliegues)
- zf : Pliega la parte seleccionada.
- zo: Despliega el pliegue.
Impresión- ha! : Imprime el buffer actual por la impresora predeterminada.
Comandos setNota: Para desactivar una opción que hayamos activado mediante set deberemos volver a ejecutar el comando pero con un no delante. Es decir, con :set opción lo activamos y con :set noopción lo desactivamos.
- :set ic : Ignora las diferencias ente mayúsculas y minúsculas. Útil para hacer búsquedas.
- :set hls : Resalta todas las ocurrencias de las búsquedas.
- :set backup
: Cada vez que le damos a guardar se copiará una versión anterior. Si
no quieres tener el ordenador lleno de ficheros que empiezan por ~ es
mejor desactivarla.
- set hidden : Para poder movernos entre distintos buffers sin tener que guardar y poder deshacer cambios entre ellos.
- set expandtab : Convierte las tabulaciones a espacios.
- set softtabstop=n : Asigna las tabulaciones a "n" espacios.
- set shiftwidth=n : Asigna los sangrados a "n" espacios.
- set lbr : Formatea el final de las líneas al estilo de otros editores y procesadores famosos.
- set vb: Sustituye el molesto beep por una señal visual (para mí, imprescindible).
- set guioptions-=T : Quita la barra de herramientas. De esta forma maximizamos el área visualizable.
- set clipboard=unnamed
: Todo lo que copiemos en el registro de Vim se asigna automáticamente
al portapapeles del Sistema Operativo. En linux, al haber dos tipos de
portapapeles, se copiará al registro primario, que es al que se accede
mediante el botón central del ratón.
Otros
- Usar vim como visor de logs (ejemplo de comando para Windows) : "c:\Archivos de programa\Vim\vim72\gvim.exe" -R -n "+set cul" "+set nu" "+set autoread" -p "c:\log1.txt" "c:\log2.txt"
Ayuda- :h teclas : Muestra ayuda sobre la combinación de teclas en modo normal.
- :h 'opción' : Muestra ayuda sobre esa opción de Vim (las que se establecen mediante el comando set).
- :h i_teclas : Muestra ayuda sobre la combinación de teclas en modo inserción.
- :h v_teclas : Muestra ayuda sobre la combinación de teclas en modo visual.
- :h :comando : Muestra ayuda sobre el comando.
- :h palabra + <CTRL-D> : Muestra una lista de los temas de ayuda que contienen esa palabra.
Nombres de las teclasA
veces es necesario llamar a las teclas especiales por su nombre, bien
sea para escribir una macro u obtener ayuda sobre una combinación de
teclas. La mayoría son el nombre en inglés encerrado en < >: - CTRL-tecla
- <TAB>
- <ESC>
- <Return>
- <Espace>
- <BackSpace>
- <Del>
- <Ins>
|
|