Movimiento básico | |
| h l k j | caracter izq., derecha; línea arriba, abajo |
| b w | palabra/símbolo izquierda, derecha |
| ge e | fin de palabra/símbolo izquierda, derecha |
| { } | principio del anterior, siguiente párrafo |
| ( ) | comienzo de anterior, siguiente oración |
| 0 gm | principio, medio de la línea |
| ^ $ | primer, último caracter de la línea |
| nG ngg | línea n. por defecto la primera, última |
| n% | porcentaje n del archivo (n es obligatorio) |
| n| | columna n de la línea actual |
| % | siguiente llave, paréntesis, comentario, #define |
| nH nL | línea n desde el principio, medio de la ventana |
| M | medio de la ventana |
Inserción & sustitución → modo insertar | |
| i a | insertar antes, después del cursor |
| I A | insertar al principio, fin de la línea |
| gI | insertar texto en la primera columna |
| o O | insertar nueva línea abajo, arriba de la actual |
| rc | sustituir caracter bajo el cursor por c |
| grc | como r, pero sin afectar el diseño |
| R | sustituir caracteres a partir del cursor |
| gR | como R, pero sin afectar el diseño |
| cm | cambiar texto del comando de deplazamiento m |
| cc or S | cambiar línea actual |
| C | cambiar hasta el fin de la línea |
| s | cambiar un caracter e insertar |
| ~ | invertir mayúscula/minúscula y avanzar el cursor |
| g~m | invertir mayús/minús del movimiento m |
| gum gUm | minúscula, mayúscula texto movimiento m |
| <m >m | desplazar izq., der. texto del movimiento m |
| n<< n>> | desplazar n líneas a la izquierda, derecha |
Borrado | |
| x X | eliminar caracter sobre, previo al cursor |
| dm | eliminar texto de comando de movimiento m |
| dd D | eliminar línea actual, hasta fin de línea actual |
| J gJ | juntar linea actual con la siguiente, sin espacio |
| :rd↵ | eliminar rango r de líneas |
| :rdx↵ | eliminar rango r de líneas al registro x |
Modo insertar | |
| ^Vc ^Vn | insertar caracter c literal, con valor decimal n |
| ^A | insertar último texto insertado |
| ^@ | igual que ^A y detener inserción → modo comando |
| ^Rx ^R^Rx | insertar contenido de registro x, literal |
| ^N ^P | completar texto antes, luego del cursor |
| ^W | eliminar palabra anterior al cursor |
| ^U | eliminar todo el texto insertado en la línea actual |
| ^D ^T | desplazar linea a la izquierda, derecha |
| ^Kc1c2 or c1←c2 | entrar dígrafo \c1,c2\ |
| ^Oc | ejecutar c en modo de temporal de comando |
| ^X^E ^X^Y | scrollear arriba, abajo |
| <esc> or ^[ | salir del modo edición → modo comando |
Copiado | |
| "x | usar registro x para la siguiente acción |
| :reg↵ | mostrar contenido de todos los registros |
| :reg x↵ | mostrar contenido de los registros x |
| ym | copiar texto del movimiento m |
| yy or Y | copiar línea actual al registro |
| p P | pegar registro antes, despues del cursor |
| ]p [p | como p, P pero ajustando la sangría |
| gp gP | igual, pero cursor queda luego de texto nuevo |
Inserción avanzada | |
| g?m | realizar codificación rot13 en movimiento m |
| n^A n^X | incrementar/disminuir numero bajo el cursor |
| gqm | formatear línea de movimiento m a ancho fijo |
| :rce w↵ | centrar líneas en rango r a ancho w |
| :rle i↵ | alinear izq. lineas en rango r con sangría i |
| :rri w↵ | alinear der. lineas en rango r con ancho w |
| !mc↵ | aplicar comando c al movimiento m |
| n!!c↵ | aplicar comando c a siguientes n lineas |
| :r!c↵ | aplicar comando c a rango de líneas r |
Modo visual | |
| v V ^V | empezar/terminar marca caract, líneas, bloque |
| o | cursor de selección al principio/fin del marcado |
| gv | empezar a marcar utilizando última zona marcada |
| aw as ap | seleccionar una palabra, oración, párrafo |
| ab aB | seleccionar un bloque ( ), un bloque { } |
Deshacer, repetir & registros | |
| u U | deshacer último comando, restaurar última línea |
| . ^R | repetir últimos cambios, rehacer último deshacer |
| n. | repetir últimos cambios n veces |
| qc qC | grabar, agregar teclas tipeadas en registro c |
| q | detener grabación |
| @c | ejecutar el contenido del registro c |
| @@ | repetir comando @ anterior |
| :@c↵ | ejecutar registro c como un comando Ex |
| :rg/p/c↵ | ejecutar comando Ex c en rango r |
| donde se cumpla el patrón p | |
Movimiento complejo | |
| - + | línea arriba, abajo al primer caracter no blanco |
| B W | siguiente, anterior palabra separada por espacio |
| gE E | fin de anterior, siguiente palabra espaciada |
| n_ | al primer caracter no blanco en linea n-1 debajo |
| g0 | principio de la línea en pantalla |
| g^ g$ | primer, último caracter de la línea en pantalla |
| gk gj | línea en pantalla arriba, abajo |
| fc Fc | siguiente, anterior ocurrencia del caracter c |
| tc Tc | antes de la siguiente, anterior occurencia de c |
| ; , | repetir última fFtT, en dirección opuesta |
| [[ ]] | comienzo de la sección hacia atrás, adelante |
| [] ][ | fin de la sección hacia atrás, adelante |
| [( ]) | seccion (, ) abierta hacia atrás, adelante |
| [{ ]} | seccion {, } abierta hacia atrás, adelante |
| [m ]m | comienzo de método Java hacia atrás, adelante |
| [# ]# | #if, #else, #endif abierto atrás, adelante |
| [* ]* | principio, fin de /* */ hacia atrás, adelante |
Búsqueda & sustitución | |
| /s↵ ?s↵ | buscar s hacia adelante, atrás |
| /s/o↵ ?s?o↵ | buscar s adelante, atrás con desplaz. o |
| n or /↵ | repetir última búsqueda hacia adelante |
| N or ?↵ | repetir última búsqueda hacia atrás |
| # * | buscar adelante, atrás palabra sobre cursor |
| g# g* | igual, pero buscar tambien resultados parciales |
| gd gD | definición local, global de símbolo sobre cursor |
| :rs/f/t/x↵ | sustituir f por t en rango r |
| x: g-todas las ocurrencias, c-confirmar cambios | |
| :rs x↵ | repetir sustitución con nuevo r & x |
Caracteres especiales en patrones de busqueda | |
| . ^ $ | caracter simple; comienzo, fin de línea |
| \< \> | comienzo, fin de palabra |
| [c1-c2] | caracter simple en el rango c1..c2 |
| [^c1-c2] | caracter simple no en el rango c1..c2 |
| \i \k \I \K | identificador, palabra clave; excl. dígitos |
| \f \p \F \P | nombre arch, car. imprim.; ign. dígitos |
| \s \S | espacio en blanco, no espacio en blanco |
| \e \t \r \b | <esc>, <tab>, <↵>, <←> |
| \= * \+ | 0..1, 0..∞, 1..∞ del átomo anterior |
| \| | separar dos ramas ( ≡ o) |
| \( \) | agrupa patrones en un átomo |
| \& \n | todo el patrón encontrado, grupo no () |
| \u \l | próximo caracter a mayúscula, minúscula |
Desplazamientos en comandos de búsqueda | |
| n or +n | n líneas hacia abajo en columna 1 |
| -n | n líneas hacia arriba en columna 1 |
| e+n e-n | n caract. der., izq de comienzo del matcheo |
| s+n s-n | n caract. der., izq. del final del matcheo |
| ;sc | ejecutar comando de búsqueda sc a continuación |
Marcas y movimiento | |
| mc | marcar posición actual con marca c ∈[a..Z] |
| `c `C | ir a marca c en archivo actual, cualquier archivo |
| `0..9 | ir a última posición de salida |
| `` `" | ir a posición antes del salto, de última edición |
| `[ `] | ir al principio, fin del último texto operado |
| :marks↵ | mostrar lista de marcas activas |
| :jumps↵ | mostrar lista de saltos |
| n^O | ir a la na posición más vieja de la lista de saltos |
| n^I | ir a la na posición más nueva de la lista de saltos |
Mapeo de teclas & abreviaciones | |
| :map c e↵ | mapear c ↦ e. modo normal & visual |
| :map! c e↵ | map. c ↦ e. modo insertar & comandos |
| :unmap c↵ :unmap! c↵ | borrar mapeo c |
| :mk f↵ | guardar mapeos actuales en archivo f |
| :ab c e↵ | agregar abreviatura para c ↦ e |
| :ab c↵ | mostrar abreviaturas que empiezan con c |
| :una c↵ | borrar abreviatura c |
Etiquetas | |
| :ta t↵ | saltar a etiqueta t |
| :nta↵ | saltar a la na etiqueta mas nueva |
| ^] ^T | saltar a etiqueta sobre cursor, volver de etiqueta |
| :ts t↵ | listar etiquetas que matchean y elegir una |
| :tj t↵ | saltar a etiqueta o elegir una si varias cumplen |
| :tags↵ | mostrar lista de etiquetas |
| :npo↵ :n^T↵ | saltar desde, hacia n^va etiqueta vieja |
| :tl↵ | saltar a última etiqueta que matchea |
| ^W} :pt t↵ | vista previa etiqueta sobre cursor, etiq. t |
| ^W] | separar ventana y mostrar etiqueta sobre el cursor |
| ^Wz or :pc↵ | cerrar vista previa de etiquetas |
Scrolleo & ventanas | |
| ^E ^Y | scrollear una línea arriba, abajo |
| ^D ^U | scrollear media página arriba, abajo |
| ^F ^B | scrollear una página arriba, abajo |
| zt or z↵ | poner línea actual al principio de la ventana |
| zz or z. | poner línea actual al centro de la ventana |
| zb or z- | poner línea actual al final de la ventana |
| zh zl | scrollear un caracter a la derecha, izquierda |
| zH zL | scrollear media pantalla a la derecha, izquierda |
| ^Ws or :split↵ | dividir ventana en dos |
| ^Wn or :new↵ | crear nueva ventana vacía |
| ^Wo or :on↵ | hacer ventana actual única en la pantalla |
| ^Wj ^Wk | pasar a la ventana de abajo, arriba |
| ^Ww ^W^W | pasar a la ventana de abajo, arriba (ciclíco) |
Comandos Ex (↵) | |
| :e f | editar archivo f, a menos que hayan cambios |
| :e! f | editar archivo f siempre (recargar el actual) |
| :wn :wN | guardar archivo y editar siguiente, anterior |
| :n :N | editar archivo siguiente, anterior de la lista |
| :rw | guardar rango r en archivo actual |
| :rw f | guardar rango r a archivo f |
| :rw>>f | agregar rango r al archivo f |
| :q :q! | salir y confirmar, salir e ignorar cambios |
| :wq or :x or ZZ | guardar archivo actual y salir |
| <up> <down> | recordar comandos anteriores (historial) |
| :r f | insertar contenido archivo f debajo del cursor |
| :r! c | insertar salida del comando c debajo del cursor |
| :all | abrir una vent. por cada arch. pasado en los arg. |
| :args | mostrar lista de argumentos |
Rangos Ex | |
| , ; | separa dos números de línea, primera linea |
| n | número de linea absoluto n |
| . $ | línea actual, última linea del archivo |
| % * | todo el archivo, toda el área visual |
| 't | posición de la marca t |
| /p/ ?p? | la próxima, anterior línea que cumple con p |
| +n -n | +n, -n al numero de línea predecesor |
Pliegues (folding) | |
| zfm | crear pliegue del movimiento m |
| :rfo | crear pliegue para el rango r |
| zd zE | borrar pliegue activo, todos los de la ventana |
| zo zc zO zC | abrir, cerrar un pliegue; recursivamente |
| [z ]z | ir al comienzo, fin del pliegue actual |
| zj zk | ir abajo, arriba del comienzo, fin de sig. pliegue |
Misceláneas | |
| :sh↵ :!c↵ | correr shell, ejecutar comando c |
| K | buscar palabra sobre el cursor con man |
| :make↵ | correr make, leer errores y saltar al primero |
| :cn↵ :cp↵ | mostrar el siguiente, anterior error |
| :cl↵ :cf↵ | listar errores, leer errores de archivo |
| ^L ^G | redibujar pant., mostrar nombre archivo y pos. |
| g^G | mostrar columna, línea, palabra, byte actual |
| ga | mostrar código ASCII del caracter actual |
| gf | abrir archivo con nombre debajo del cursor |
| :redir>f↵ | redirigir salida al archivo f |
| :mkview [f] | guardar config. de vista [en archivo f] |
| :loadview [f] | cargar config. de vista [de archivo f] |
| ^@ ^K ^_ \ Fn ^Fn | teclas no mapeadas |