Global
- :h[elp] palabra_clave - abrir ayuda para palabra clave
 - :sav[eas] archivo - guardar archivo como
 - :clo[se] - cerrar archivo actual
 - :ter[minal] - abre una ventana de terminal
 - K - abrir página del manual (man page) de la palabra bajo el cursor
 
vimtutor en una terminal para aprender los primeros comandos de Vim.
        Mover el cursor
- h - mover el cursor hacia la izquierda
 - j - mover el cursor hacia abajo
 - k - mover el cursor hacia arriba
 - l - mover el cursor hacia la derecha
 - gj - mover el cursor hacia abajo (texto multilínea)
 - gk - mover el cursor hacia arriba (texto multilínea)
 - H - moverse hacia la parte superior de la pantalla
 - M - moverse hacia el centro de la pantalla
 - L - moverse hacia la parte inferior de la pantalla
 - w - saltar hasta el inicio de la siguiente palabra
 - W - saltar hasta el inicio de la siguiente palabra (incluso con puntuación)
 - e - saltar hasta el final de la siguiente palabra
 - E - saltar hasta el final de la siguiente palabra (incluso con puntuación)
 - b - regresar al inicio de una palabra
 - B - regresar al inicio de una palabra (incluso con puntuación)
 - ge - saltar hacia atrás hasta el final de una palabra
 - gE - saltar hacia atrás hasta el final de una palabra (las palabras pueden contener puntuación)
 - 
            % - ir al carácter asociado (pares por defecto: '()', '{}', '[]' - usar 
:h matchpairsen vim para más información) - 0 - saltar al inicio de la línea
 - ^ - saltar al primer carácter no-espacio de la línea
 - $ - saltar al final de la línea
 - g_ - saltar al último carácter no-espacio de la línea
 - gg - saltar a la primera línea del documento
 - G - saltar a la última línea del documento
 - 5gg or 5G - saltar a la línea 5
 - gd - saltar a la declaración local
 - gD - saltar a la declaración global
 - fx - saltar a la siguiente ocurrencia del carácter x
 - tx - saltar a la ocurrencia previa del carácter x
 - Fx - saltar a la aparición anterior del carácter x
 - Tx - saltar a después de la aparición anterior del carácter x
 - ; - repetir el movimiento anterior de f, t, F o T
 - , - repetir el movimiento anterior de f, t, F o T, hacia atrás
 - } - saltar al párrafo siguiente (o función/bloque, en modo edición)
 - { - saltar al párrafo previo (o función/bloque, en modo edición)
 - zz - desplazar el cursor (sin moverlo) hacia el centro de la pantalla
 - zt - desplazar el cursor (sin moverlo) hacia la parte superior de la pantalla
 - zb - desplazar el cursor (sin moverlo) hacia la parte inferior de la pantalla
 - Ctrl + e - mover la pantalla hacia abajo una línea (sin mover el cursor)
 - Ctrl + y - mover la pantalla una línea hacia arriba (sin mover el cursor)
 - Ctrl + b - retroceder una pantalla
 - Ctrl + f - avanzar una pantalla
 - Ctrl + d - avanzar cursor media pantalla
 - Ctrl + u - retroceder cursor media pantalla
 
Modo insertar - insertar/agregar texto
- i - insertar antes del cursor
 - I - insertar al inicio de la línea
 - a - insertar después del cursor
 - A - insertar al final de la línea
 - o - insertar una nueva linea debajo de la línea actual
 - O - insertar una nueva línea encima de la línea actual
 - ea - insertar después de palabra
 - Ctrl + h - eliminar el carácter antes del cursor durante el modo de inserción
 - Ctrl + w - eliminar palabra antes del cursor durante el modo de inserción
 - Ctrl + j - comenzar una nueva línea durante el modo de inserción
 - Ctrl + t - sangrar (mover a la derecha) línea un ancho de cambio durante el modo de inserción
 - Ctrl + d - desangrar (mover a la izquierda) línea un ancho de turno durante el modo de inserción
 - Ctrl + n - insertar (auto completar) la siguiente coincidencia antes del cursor durante el modo de inserción
 - Ctrl + p - insertar (auto completar) coincidencia anterior antes del cursor durante el modo de inserción
 - Ctrl + rx - insertar el contenido del registro x
 - Ctrl + ox - ingresar temporalmente al modo normal para emitir un comando de modo normal x.
 - Esc or Ctrl + c - salir del modo insertar
 
Editar
- r - reemplazar un carácter
 - R - reemplazar más de un carácter, hasta que se presione ESC.
 - J - juntar siguiente línea con la actual
 - gJ - juntar siguiente línea con la actual sin espacio entre ellas
 - gwip - aplicar formato en párrafo
 - g~ - alternar mayúsculas/minúsculas hasta movimiento
 - gu - cambiar a minúsculas hasta movimiento
 - gU - cambiar a mayúsculas hasta movimiento
 - cc - cambiar (reemplazar) toda la línea
 - c$ or C - cambiar (reemplazar) hasta el final de la línea
 - ciw - cambiar (reemplazar) palabra completa
 - cw or ce - cambiar (reemplazar) una palabra
 - s - eliminar carácter y reemplazar texto
 - S - eliminar línea y reemplazar texto (igual que cc)
 - xp - transponer dos letras (suprimir y pegar)
 - u - deshacer
 - U - deshacer completamente la última línea modificada
 - Ctrl + r - rehacer
 - . - repetir el último comando
 
Seleccionar texto (modo visual)
- v - iniciar modo visual, seleccionar lineas y ejecutar un comando (p. ej. y-yank)
 - V - iniciar modo visual seleccionando líneas completas (visual line mode)
 - o - moverse al otro extremo de la zona seleccionada
 - Ctrl + v - iniciar modo visual de bloque (visual block mode)
 - O - moverse a la otra esquina del bloque
 - aw - seleccionar una palabra
 - ab - un bloque con ()
 - aB - un bloque con {}
 - at - un bloque con etiquetas <>
 - ib - un bloque interno con ()
 - iB - un bloque interno con {}
 - it - bloque interior con etiquetas <>
 - Esc or Ctrl + c - salir del modo visual
 
Comandos visuales
- > - mover texto hacia la derecha
 - < - mover texto hacia la izquierda
 - y - copiar texto seleccionado
 - d - eliminar texto seleccionado
 - ~ - alternar minúsculas/mayúsculas
 - u - cambiar el texto marcado a minúsculas
 - U - cambiar el texto marcado a mayúsculas
 
Registros
- :reg[isters] - mostrar el contenido de los registros
 - "xy - copiar en el registro X
 - "xp - pegar el contenido del registro X
 - "+y - copiar en el registro del porta-papeles del sistema
 - "+p - pegar desde el registro del porta-papeles del sistema
 
             0 - ultima copia
             " - registro sin nombre, última eliminación o copia
             % - nombre de archivo actual
             # - nombre de archivo alternativo
             * - contenido del porta-papeles (X11 primario)
             + - contenido del porta-papeles (porta-papeles X11)
             / - último patrón de búsqueda
             : - última línea de comandos
             . - último texto insertado
             - - último pequeño (menos de una línea) eliminar
             = - registro de expresión
             _ - registro de agujero negro
          
Marcas
- :marks - mostrar marcas
 - ma - definir posición actual para la marca A
 - `a - saltar a la posición de la marca A
 - y`a - copiar texto a la posición de la marca A
 - `0 - ir a la posición donde se había salido previamente de Vim
 - `" - ir a la posición en la que se editó por última vez este archivo
 - `. - ir a la posición del último cambio en este archivo
 - `` - ir a la posición antes del último salto
 - :ju[mps] - lista de saltos
 - Ctrl + i - ir a la nueva posición en la lista de salto
 - Ctrl + o - ir a la posición anterior en la lista de salto
 - :changes - lista de cambios
 - g, - ir a la nueva posición en la lista de cambios
 - g; - ir a la posición anterior en la lista de cambios
 - Ctrl + ] - saltar a la etiqueta debajo del cursor
 
Macros
- qa - grabar macro a
 - q - detener la grabación de la macro
 - @a - ejecutar macro a
 - @@ - reejecutar la última macro
 
Copiar y pegar
- yy - copiar una línea
 - 2yy - copiar dos líneas
 - yw - copiar el resto de los caracteres de la palabra desde la posición del cursor hasta el inicio de la siguiente palabra
 - yiw - copiar la palabra localizada en la posición del cursor
 - yaw - copiar la palabra localizada en la posición del cursor y el espacio detrás de ella o delante
 - y$ or Y - copiar hasta el final de la línea
 - p - pegar antes del cursor
 - P - pegar después del cursor
 - gp - pegar antes del cursor y mover después del nuevo texto
 - gP - pegar después del cursor y mover después del nuevo texto
 - dd - cortar una línea
 - 2dd - cortar dos líneas
 - dw - cortar el resto de los caracteres de la palabra desde la posición del cursor hasta el inicio de la siguiente palabra
 - diw - cortar la palabra localizada en la posición del cursor
 - daw - cortar la palabra localizada en la posición del cursor y el espacio detrás de ella o delante
 - :3,5d - cortar desde la línea 3 hasta la 5
 
e.g.
            :.,$d - Desde la línea actual al final del archivo 
            :.,1d - Desde la línea actual al inicio del archivo 
            :10,1d - Desde la décima línea al inicio del archivo 
          
- :g/{pattern}/d - cortar todas las líneas que contengan el patrón
 - :g!/{pattern}/d - cortar todas las líneas que no contengan el patrón
 - d$ or D - cortar hasta el final de la línea
 - x - cortar carácter
 
Sangría del texto
- >> - sangría (mover a la derecha) línea uno ancho de turno
 - << - desangrar (mover a la izquierda) línea uno ancho de turno
 - >% - sangrar un bloque con () o {} (cursor sobre llave)
 - <% - desangrar un bloque con () o {} (cursor sobre llave)
 - >ib - sangrar el bloque interior con ()
 - >at - sangrar un bloque con etiquetas <>
 - 3== - resangrar 3 líneas
 - =% - volver a sangrar un bloque con () o {} (cursor sobre llave)
 - =iB - volver a sangrar el bloque interior con {}
 - gg=G - volver a sangrar todo el búfer
 - ]p - pegar y ajustar la sangría a la línea actual
 
Salir
- :w - guardar archivo sin salir
 - :w !sudo tee % - guardar archivo usando sudo
 - :wq or :x or ZZ - guardar archivo y salir
 - :q - salir (no funciona si hay cambios sin guardar)
 - :q! or ZQ - salir descartando los cambios no guardados
 - :wqa - escribir (guardar) y salir en todas las pestañas
 
Buscar y reemplazar
- /pattern - buscar patrón
 - ?pattern - buscar patrón hacia atrás
 - \vpattern - patrón 'muy mágico' (very magic): los caracteres no alfanuméricos son interpretados como caracteres de expresiones regulares (sin necesidad de escaparlos)
 - n - repetir la búsqueda en la misma dirección
 - N - repetir la búsqueda en la dirección contraria
 - :%s/old/new/g - reemplazar en todo el archivo
 - :%s/old/new/gc - reemplazar en todo el archivo pidiendo una confirmación
 - :noh[lsearch] - desactiva el realce (highlight) de los resultados de búsqueda
 
Buscar en varios archivos
- :vim[grep] /pattern/ {`{file}`} - buscar un patrón en varios archivos
 
- :cn[ext] - ir al resultado siguiente
 - :cp[revious] - ir al resultado previo
 - :cope[n] - abrir ventana con una lista de los resultados
 - :ccl[ose] - cerrar la ventana de corrección rápida
 
Pestañas
- :tabnew or :tabnew {page.words.file} - abrir archivo en una nueva pestaña
 - Ctrl + wT - mover la ventana actual a su propia pestaña
 - gt or :tabn[ext] - ir a la pestaña siguiente
 - gT or :tabp[revious] - ir a la pestaña anterior
 - #gt - ir a la pestaña número #
 - :tabm[ove] # - mover a la pestaña actual a la posición número # (desde 0)
 - :tabc[lose] - cerrar todas las pestañas y sus ventanas
 - :tabo[nly] - cerrar todas las pestañas salvo la actual
 - 
            :tabdo command - ejecuta el 
comandoen todas las pestañas (p. ej.,:tabdo q- cierra todas las pestañas abiertas) 
Trabajar con varios archivos
- :e[dit] archivo - editar un archivo en un nuevo búfer
 - :bn[ext] - ir al búfer siguiente
 - :bp[revious] - ir al búfer anterior
 - :bd[elete] - eliminar búfer (cerrar archivo)
 - :b[uffer]# - ir a un búfer por #
 - :b[uffer] file - ir a un búfer por archivo
 - :ls or :buffers - mostrar todos los búferes abiertos
 - :sp[lit] archivo - abrir archivo en un nuevo búfer y dividir la ventana
 - :vs[plit] archivo - abrir archivo en un nuevo búfer y dividir la ventana verticalmente
 - :vert[ical] ba[ll] - editar todos los búferes como ventanas verticales
 - :tab ba[ll] - editar todos los búferes como pestañas
 - Ctrl + ws - dividir ventana
 - Ctrl + wv - dividir ventana verticalmente
 - Ctrl + ww - cambiar de ventana
 - Ctrl + wq - cerrar ventana
 - Ctrl + wx - intercambiar la ventana actual con la siguiente
 - Ctrl + w= - hacer que todas las ventanas tengan la misma altura y ancho
 - Ctrl + wh - mover el cursor a la ventana izquierda (división vertical)
 - Ctrl + wl - mover el cursor a la ventana derecha (división vertical)
 - Ctrl + wj - mover el cursor a la ventana de abajo (división horizontal)
 - Ctrl + wk - mover el cursor a la ventana de arriba (división horizontal)
 - Ctrl + wH - extender ancho de la ventana (vertical) hacia la izquierda
 - Ctrl + wL - extender ancho de la ventana (vertical) hacia la derecha
 - Ctrl + wJ - extender alto de la ventana (horizontal) hacia abajo
 - Ctrl + wK - extender alto de la ventana (horizontal) hacia arriba
 
Diferencia
- zf - definir manualmente un pliegue hasta el movimiento
 - zd - eliminar pliegue debajo del cursor
 - za - alternar pliegue debajo del cursor
 - zo - pliegue abierto debajo del cursor
 - zc - cerrar pliegue debajo del cursor
 - zr - reducir (abrir) todos los pliegues en un nivel
 - zm - doblar más (cerrar) todos los dobleces en un nivel
 - zi - alternar la funcionalidad de plegado
 - ]c - saltar al inicio del próximo cambio
 - [c - saltar al inicio del cambio anterior
 - do or :diffg[et] - obtener (obtener) diferencia (de otro búfer)
 - dp or :diffpu[t] - poner diferencia (a otro búfer)
 - :diffthis - hacer que la ventana actual forme parte de diff
 - :dif[fupdate] - actualizar diferencias
 - :diffo[ff] - desactivar el modo diferencial para la ventana actual