El Command mode es la interfaz de texto de Vim para operaciones sobre archivos, rangos, configuración y automatización. Cualquier cosa que no tenga un atajo en Normal mode se ejecuta aquí.


Abreviaciones de modos:
N = Normal | I = Insert | V = Visual | C = Command | VB = Visual Block

Navegación en la línea de comandos

ModoComandoAcción
C<Ctrl-b>Mueve el cursor al inicio de la línea
C<Ctrl-e>Mueve el cursor al final de la línea
C<Ctrl-h>Borra el carácter anterior
C<Ctrl-w>Borra la palabra anterior
C<Ctrl-u>Borra desde el cursor hasta el inicio
C<Up> / <Down>Navega el historial de comandos
C<Ctrl-p> / <Ctrl-n>Navega el historial (igual que flechas)
Cq:Abre el historial como buffer editable
C<Ctrl-f>Abre el historial como buffer editable (desde Command mode)

Rangos

ModoComandoAcción
C:{n}Salta a la línea n
C:{n},{m}cmdAplica cmd entre las líneas n y m
C:%cmdAplica cmd a todo el archivo
C:.cmdAplica cmd a la línea actual
C:$cmdAplica cmd a la última línea
C:.,$cmdAplica cmd desde la línea actual hasta el final
C:'<,'>cmdAplica cmd a la selección Visual activa
C:'{a},{b}cmdAplica cmd entre los marks a y b
C:/patrón/cmdAplica cmd en la siguiente línea que coincide
C:/{p1}/,/{p2}/cmdAplica cmd entre dos patrones

Modificadores de rango

ModificadorSignificado
+nn líneas después del punto de referencia
-nn líneas antes del punto de referencia
.,+5Línea actual y las 5 siguientes
'a,'bEntre los marks a y b
%Todo el archivo (equivale a 1,$)

Comandos de archivo

ModoComandoAcción
C:wGuarda el archivo actual
C:w {archivo}Guarda como archivo nuevo
C:w >> {archivo}Añade el contenido al archivo especificado
C:waGuarda todos los buffers modificados
C:wqGuarda y cierra
C:xGuarda solo si hay cambios y cierra
C:qCierra si no hay cambios pendientes
C:q!Cierra descartando cambios
C:qa!Cierra todo Vim descartando cambios
C:{rango}w {archivo}Guarda solo el rango especificado en un archivo

Comandos de edición sobre rangos

ModoComandoAcción
C:{rango}dBorra las líneas del rango
C:{rango}yCopia las líneas del rango
C:{rango}t {destino}Copia el rango a la línea destino
C:{rango}m {destino}Mueve el rango a la línea destino
C:{rango}jUne las líneas del rango en una sola
C:{rango}centerCentra las líneas del rango
C:{rango}leftAlinea las líneas del rango a la izquierda
C:{rango}rightAlinea las líneas del rango a la derecha
C:{rango}sortOrdena las líneas del rango alfabéticamente
C:{rango}sort!Ordena en orden inverso
C:{rango}sort uOrdena y elimina duplicados

Autocompletado en Command mode

ModoComandoAcción
C<Tab>Completa el comando o argumento actual
C<Shift-Tab>Cicla hacia atrás en las sugerencias
C<Ctrl-d>Lista todas las completaciones posibles
C:set wildmode=list:longestCompleta hasta el prefijo común y lista
C:set wildmenuActiva el menú visual de completado

Comandos de configuración

ModoComandoAcción
C:set {opción}Activa una opción booleana
C:set no{opción}Desactiva una opción booleana
C:set {opción}!Alterna una opción booleana
C:set {opción}?Muestra el valor actual de la opción
C:set {opción}={valor}Asigna un valor a la opción
C:setlocal {opción}Aplica la opción solo al buffer actual
C:verbose set {opción}?Muestra el valor y dónde fue definido

Comandos de información

ModoComandoAcción
C:versionMuestra la versión de Vim y features compilados
C:messagesMuestra el historial de mensajes de Vim
C:scriptnamesLista todos los scripts cargados al inicio
C:mapLista todos los mappings activos
C:map {tecla}Muestra el mapping de una tecla específica
C:abbrevLista todas las abreviaciones definidas
C:autocmdLista todos los autocomandos activos
C:hiLista todos los grupos de highlight activos

Ejecutar y reutilizar comandos

ModoComandoAcción
C@:Repite el último comando ejecutado
N@:Repite el último comando desde Normal mode
C:!!Repite el último comando externo con !
C:<Ctrl-r>:Inserta el último comando en la línea actual

Tips

  • q: abre el historial de comandos como un buffer Vim real: puedes editar cualquier línea con todos los comandos normales y ejecutarla con <Enter>.
  • :verbose set {opción}? es indispensable para depurar configuraciones: muestra exactamente qué archivo y línea definió el valor actual.
  • :{rango}t. copia el rango justo debajo de la línea actual; :{rango}m. lo mueve. Son los comandos más rápidos para duplicar o reordenar bloques sin macros.
  • @: en Normal mode repite el último comando de Command mode; encadenado con un contador {n}@: lo ejecuta n veces sin reescribirlo.
  • :set wildmenu con :set wildmode=list:longest convierte el autocompletado de Command mode en algo similar al completado de una shell moderna.