Referencia rápida de comandos Vim, organizada para el trabajo de administración de servidores. Guarda esta página en marcadores.
| Modo |
Acceso |
Propósito |
Volver a Normal |
| Normal |
Esc |
Navegar, ejecutar comandos |
Ya estás ahí |
| Inserción |
i, a, o, I, A, O |
Escribir texto |
Esc |
| Visual |
v (carácter), V (línea), Ctrl+v (bloque) |
Seleccionar texto |
Esc |
| Línea de comandos |
: |
Ejecutar comandos ex |
Enter o Esc |
| Comando |
Acción |
:w |
Guardar |
:q |
Salir (falla si hay cambios sin guardar) |
:wq o ZZ |
Guardar y salir |
:q! |
Salir sin guardar |
:w !sudo tee % |
Guardar un archivo de solo lectura (cuando olvidaste sudoedit) |
:e /ruta/al/archivo |
Abrir archivo |
:saveas /ruta |
Guardar como archivo nuevo |
| Tecla |
Acción |
h j k l |
Izquierda, abajo, arriba, derecha |
0 |
Inicio de línea |
$ |
Final de línea |
^ |
Primer carácter no vacío |
| Tecla |
Acción |
w / W |
Siguiente palabra / PALABRA |
b / B |
Palabra anterior / PALABRA anterior |
e |
Final de la palabra |
| Tecla |
Acción |
gg |
Primera línea |
G |
Última línea |
42G o :42 |
Línea 42 |
Ctrl+d / Ctrl+u |
Media página abajo / arriba |
Ctrl+f / Ctrl+b |
Página completa abajo / arriba |
% |
Paréntesis correspondiente |
| Tecla |
Acción |
/patrón |
Buscar hacia adelante |
?patrón |
Buscar hacia atrás |
n / N |
Siguiente / anterior coincidencia |
* |
Buscar palabra bajo el cursor (adelante) |
# |
Buscar palabra bajo el cursor (atrás) |
| Tecla |
Acción |
i |
Antes del cursor |
a |
Después del cursor |
I |
Inicio de línea |
A |
Final de línea |
o |
Nueva línea debajo |
O |
Nueva línea encima |
s |
Eliminar carácter e insertar |
S o cc |
Eliminar línea e insertar |
| Comando |
Acción |
x |
Eliminar carácter |
dd |
Eliminar línea |
dw |
Eliminar palabra |
d$ o D |
Eliminar hasta el final de la línea |
d0 |
Eliminar hasta el inicio de la línea |
cc |
Cambiar línea |
cw |
Cambiar palabra |
ci" |
Cambiar dentro de comillas |
ci( |
Cambiar dentro de paréntesis |
yy |
Copiar línea |
yw |
Copiar palabra |
p / P |
Pegar después / antes |
u |
Deshacer |
Ctrl+r |
Rehacer |
. |
Repetir último cambio |
>> / << |
Indentar / desindentar línea |
J |
Unir línea actual con la siguiente |
Los comandos Vim aceptan un prefijo numérico. Combina operadores con movimientos para ediciones precisas.
| Ejemplo |
Acción |
3dd |
Eliminar 3 líneas |
5j |
Bajar 5 líneas |
d2w |
Eliminar las 2 siguientes palabras |
4>> |
Indentar 4 líneas |
y3w |
Copiar 3 palabras |
ct; |
Cambiar texto hasta ; |
df" |
Eliminar hasta el próximo " inclusive |
| Comando |
Acción |
v |
Iniciar selección por carácter |
V |
Iniciar selección por línea |
Ctrl+v |
Iniciar selección por bloque |
d |
Eliminar selección |
y |
Copiar selección |
> / < |
Indentar / desindentar selección |
:s/^/#/ |
Comentar líneas seleccionadas (en modo visual de línea) |
U / u |
Mayúsculas / minúsculas de la selección |
| Comando |
Acción |
:s/viejo/nuevo/ |
Reemplazar primero en la línea actual |
:s/viejo/nuevo/g |
Reemplazar todos en la línea actual |
:%s/viejo/nuevo/g |
Reemplazar todos en el archivo |
:%s/viejo/nuevo/gc |
Reemplazar todos con confirmación |
:5,10s/viejo/nuevo/g |
Reemplazar todos en líneas 5-10 |
| Patrón |
Coincide con |
^ / $ |
Inicio / final de línea |
. |
Cualquier carácter |
\d |
Dígito |
\s |
Espacio en blanco |
.* |
Cualquier carácter (codicioso) |
\v |
Modo "very magic" (menos escapado) |
:%s/listen 80;/listen 443 ssl;/g
:%s/nginx:1.24/nginx:1.27/g
:%s/192\.168\.1\.1/10.0.0.1/g
| Comando |
Acción |
:e archivo |
Abrir en buffer |
:bn / :bp |
Buffer siguiente / anterior |
:ls |
Listar buffers |
:b2 |
Ir al buffer 2 |
:bd |
Cerrar buffer |
| Comando |
Acción |
:sp archivo |
Split horizontal |
:vs archivo |
Split vertical |
Ctrl+w h/j/k/l |
Moverse entre splits |
Ctrl+w = |
Tamaños iguales de splits |
Ctrl+w q |
Cerrar split |
Ctrl+w _ |
Maximizar altura del split actual |
Ctrl+w | |
Maximizar ancho del split actual |
| Comando |
Acción |
:tabnew archivo |
Abrir en nueva pestaña |
gt / gT |
Siguiente / anterior pestaña |
:tabclose |
Cerrar pestaña |
Configuración mínima optimizada para servidores:
set nocompatible
set encoding=utf-8
set number relativenumber
syntax on
set expandtab tabstop=2 shiftwidth=2 softtabstop=2
set incsearch hlsearch ignorecase smartcase
set showmatch laststatus=2 showmode
set mouse=a
set pastetoggle=<F2>
set noswapfile
set cursorline
set list listchars=tab:>>·,trail:·
filetype plugin indent on
| Tarea |
Comandos |
| Editar archivo de root de forma segura |
sudoedit /etc/nginx/nginx.conf |
| Pegar sin indentación en cascada |
F2, i, pegar, F2 |
| Ir a la línea del error |
vim +42 file.yml |
| Convertir tabulaciones a espacios (YAML) |
:%s/\t/ /g |
| Comentar múltiples líneas |
V, seleccionar, :s/^/#/ |
| Descomentar múltiples líneas |
V, seleccionar, :s/^#// |
| Verificar configuración Nginx |
:!sudo nginx -t |
| Recargar sin salir de Vim |
:!sudo systemctl reload nginx |
| Problema |
Solución |
| No puedo escribir tras abrir Vim |
Pulsa i (estás en modo Normal) |
Terminal congelada (Ctrl+s) |
Pulsa Ctrl+q |
| Indentación en escalera al pegar |
Activa modo de pegado: F2 o :set paste |
| Archivo de solo lectura |
Sal, vuelve a abrir con sudoedit |
| Advertencia de archivo swap |
Elige (D)elete si ninguna otra sesión edita el archivo |
Copyright 2026 Virtua.Cloud. Todos los derechos reservados.
Este contenido es una obra original del equipo de Virtua.Cloud.
La reproducción, republicación o redistribución sin permiso escrito está prohibida.