Que es Vim
Vim es un editor de texto avanzado utilizado como estandar en sistemas operativos tipo Unix. Tiene el concepto de “modos” que permite editar texto de manera eficiente usando solo el teclado. Es ampliamente utilizado en administracion de servidores y programacion.
Cambio de modos
Vim tiene varios modos, cada uno con un rol diferente.
| Tecla | Modo | Descripcion |
|---|
i | Modo insercion | Insertar caracteres antes del cursor |
a | Modo insercion | Insertar caracteres despues del cursor |
I | Modo insercion | Mover al inicio de linea y comenzar a insertar |
A | Modo insercion | Mover al final de linea y comenzar a insertar |
o | Modo insercion | Insertar nueva linea debajo y comenzar a escribir |
O | Modo insercion | Insertar nueva linea arriba y comenzar a escribir |
Esc | Modo normal | Volver al modo normal desde otros modos |
v | Modo visual | Seleccion por caracteres |
V | Modo visual | Seleccion por lineas |
Ctrl+v | Modo visual | Seleccion rectangular (seleccion de bloque) |
: | Modo comando | Ingresar comandos ex |
Movimiento del cursor
El movimiento eficiente afecta enormemente la productividad en Vim.
Movimiento basico
| Tecla | Descripcion |
|---|
h | Mover 1 caracter a la izquierda |
j | Mover 1 linea hacia abajo |
k | Mover 1 linea hacia arriba |
l | Mover 1 caracter a la derecha |
Movimiento por palabras
| Tecla | Descripcion |
|---|
w | Ir al inicio de la siguiente palabra (word) |
W | Ir a la siguiente palabra separada por espacios |
b | Ir al inicio de la palabra anterior (back) |
B | Ir a la palabra anterior separada por espacios |
e | Ir al final de la palabra (end) |
E | Ir al final de la palabra separada por espacios |
Movimiento dentro de la linea
| Tecla | Descripcion |
|---|
0 | Ir al inicio de la linea (columna 0) |
^ | Ir al primer caracter no vacio de la linea |
$ | Ir al final de la linea |
f{char} | Saltar al siguiente {char} en la linea |
F{char} | Saltar al {char} anterior en la linea |
t{char} | Ir justo antes del siguiente {char} |
; | Repetir busqueda de f/F/t |
Movimiento dentro del archivo
| Tecla | Descripcion |
|---|
gg | Ir al inicio del archivo |
G | Ir al final del archivo |
{n}G | Saltar a la linea n |
:{n} | Saltar a la linea n |
Ctrl+f | Desplazar una pagina hacia abajo |
Ctrl+b | Desplazar una pagina hacia arriba |
Ctrl+d | Desplazar media pagina hacia abajo |
Ctrl+u | Desplazar media pagina hacia arriba |
% | Saltar al parentesis correspondiente |
100G
:100
Operaciones de edicion
Eliminar
| Tecla | Descripcion |
|---|
x | Eliminar 1 caracter en la posicion del cursor |
X | Eliminar 1 caracter antes del cursor |
dd | Eliminar 1 linea (cortar) |
D | Eliminar desde el cursor hasta el final de la linea |
dw | Eliminar palabra |
diw | Eliminar palabra completa (inner word) |
di" | Eliminar contenido dentro de comillas dobles |
di( | Eliminar contenido dentro de parentesis |
d$ | Eliminar desde el cursor hasta el final de la linea |
Copiar y pegar
| Tecla | Descripcion |
|---|
yy | Copiar 1 linea (yank) |
yw | Copiar palabra |
y$ | Copiar desde el cursor hasta el final de la linea |
p | Pegar despues del cursor |
P | Pegar antes del cursor |
"0p | Pegar el ultimo texto copiado |
"+y | Copiar al portapapeles del sistema |
"+p | Pegar desde el portapapeles del sistema |
Cambiar (eliminar y entrar en modo insercion)
| Tecla | Descripcion |
|---|
cw | Cambiar palabra |
ciw | Cambiar palabra completa |
ci" | Cambiar contenido dentro de comillas dobles |
cc | Cambiar linea completa |
C | Cambiar desde el cursor hasta el final de la linea |
s | Eliminar 1 caracter y entrar en modo insercion |
S | Eliminar linea y entrar en modo insercion |
Deshacer y rehacer
| Tecla | Descripcion |
|---|
u | Deshacer (Undo) |
Ctrl+r | Rehacer (Redo) |
. | Repetir la ultima operacion |
3u
5.
Busqueda y reemplazo
Busqueda
| Tecla | Descripcion |
|---|
/{pattern} | Busqueda hacia adelante |
?{pattern} | Busqueda hacia atras |
n | Ir al siguiente resultado de busqueda |
N | Ir al resultado de busqueda anterior |
* | Buscar hacia adelante la palabra en la posicion del cursor |
# | Buscar hacia atras la palabra en la posicion del cursor |
'function'
/function
/pattern\c
/\<word\>
Reemplazo
:s/old/new/
:s/old/new/g
:%s/old/new/g
:%s/old/new/gc
:%s/old/new/gi
:10,20s/old/new/g
:'<,'>s/old/new/g
Operaciones de archivo
| Comando | Descripcion |
|---|
:w | Guardar |
:w {filename} | Guardar con nombre |
:q | Salir |
:q! | Salir forzadamente sin guardar |
:wq | Guardar y salir |
ZZ | Guardar y salir (igual que :wq) |
ZQ | Salir sin guardar (igual que :q!) |
:e {filename} | Abrir archivo |
:r {filename} | Insertar contenido de archivo |
:!{command} | Ejecutar comando externo |
:w %.bak
:r !date
Operaciones de ventana
| Comando | Descripcion |
|---|
:split | Division horizontal |
:vsplit | Division vertical |
Ctrl+w h | Ir a la ventana izquierda |
Ctrl+w j | Ir a la ventana inferior |
Ctrl+w k | Ir a la ventana superior |
Ctrl+w l | Ir a la ventana derecha |
Ctrl+w = | Igualar tamano de ventanas |
Ctrl+w q | Cerrar ventana |
Macros
Permite automatizar tareas repetitivas.
qa
q
@a
5@a
@@
Configuraciones utiles (.vimrc)
set number
set relativenumber
syntax on
set tabstop=4
set shiftwidth=4
set expandtab
set hlsearch
set incsearch
set ignorecase
set smartcase
set clipboard=unnamedplus
Plugins populares
| Plugin | Descripcion |
|---|
| vim-plug | Gestor de plugins |
| NERDTree | Explorador de archivos |
| fzf.vim | Buscador difuso |
| vim-fugitive | Integracion con Git |
| coc.nvim | LSP/Autocompletado |
Enlaces de referencia
← Volver a la lista