Skip to content

Instantly share code, notes, and snippets.

@kirk86
Created October 29, 2015 19:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kirk86/3f41f9e41195dc26a6a5 to your computer and use it in GitHub Desktop.
Save kirk86/3f41f9e41195dc26a6a5 to your computer and use it in GitHub Desktop.
[CHEATSHEET] Vim cheatsheet

#Vim

###Índice

  • Se introduces o número n antes de un comando, executa ese comando n veces
  • Se un comando ten un guión antes, indica que se debe executar dentro do correspondente modo

###Xeral

Comando Función
u Desfacer
Ctrl + r Refacer
. Repetir último comando
:q Pechar (non funciona se hai cambios)
:q! / ZQ Forzar o peche se hai cambios e non os queres gardar
:qa Pechar tódalas ventás
:w Gardar
:w nome Gardar unha copia chamada nome
:wq / :x / ZZ Gardar e saír
:wa[!] Gardar tódalas ventás [forzar]
:Ex Explorador de arquivos
:help Amosa axuda
qm Comeza a gravar unha macro e gardaa na letra *m (Para de grabar pulsando de novo q)
@m Executa a macro almacenada na letra m

###Mover

Comando Función
h / j / k / l Mover á esquerda / abaixo /arriba / dereita
w / W Ir unha palabra adiante (dereita) / e que estén separadas por espazos
e / E Ir unha palabra adiante, ó final de ésta / e que estén separadas por espazos
b / B Ir unha palabra atrás (esquerda) / e que estén separadas por espazos
0 (cero) Ir ó principio da liña
$ Ir ó final da liña
^ / _ Ir ó principio da liña (caracter que non sexa un espazo)
_ / g_ Ir ó principio da liña (caracter que non sexa un espazo e pódese introduccir un nº antes) / Ir ó final da liña (parecido a $)
gg Ir ó principio do arquivo
G Ir ó final do arquivo
nG Ir á liña n
% Móvese entre paŕentesis (), chaves {} ou corchetes []
H / M / L Ir á parte superior / media / inferior da pantalla
zt / z. / zb Poñer a liña do cursor na parte superior / media / inferior da pantalla
Ctrl + U / + D Mover media pantalla arriba / abaixo
Ctrl + B / + F Mover unha pantalla arriba / abaixo

###Modo comandos

Comando Función
yy / Y Copiar unha liña
yw Copiar unha palabra
y$ Copiar ata o final da liña
y0 Copiar ata o principio da liña
p / P Pegar despois / antes do cursor
dd Cortar unha liña
dw Cortar unha palabra dende o cursor ata o final
diw Cortar unha palabra
dip Cortar un parágrafo
D / d$ Cortar ata o final da liña
d0 Cortar ata o principio da liña
dib / diB Corta o que hai dentro de paréntesis () / de chaves {}
dab / daB Corta o que hai dentro de paréntesis () / de chaves {} e máis a éstes incluídos
x / X Cortar caracter no que se atopa o cursor / anterior
r Reemprazar un caracter
R Entra en modo reemprazar
cc Cambiar toda a liña (borraa e entra en modo insertar) (igual que S)
cw Cambiar unha palabra dende o cursor ata o final
ciw Cambiar unha palabra
C / c$ Cambiar dende o cursor ata o final da liña
s Elimina o caracter e entra en modo insertar
S Elimina toda a liña e entra en modo insertar (igual que cc)

| Añade identación (TAB) << | Elimina identación (TAB) J | Xunta a liña coa liña seguinte ~ | Reempraza entra maiúsculas e minúsculas :m n | Mover a liña actual a despois da liña n :m 0 | Mover a liña actual ó principio do documento :m $ | Mover a liña actual ó final do documento :m '}-1 | Mover a liña actual ó final do parágrafo :m 'm | Mover a liña actual ó marcador m :nm x | Mover a liña n a despois da liña x :m .+1 / :m+ | Mover a liña actual unha posición abaixo :g/^z/d | Borra tódalas liñas que comecen por z :g/^$/d | Borra tódalas liñas en branco

Combinación Función
viwp Pega sustituindo toda a palabra
xp Alterna a posición do caracter co anterior (typo)
ynG / dnG / cnG Copia / Borra / Cambia dende a liña actual, ata a liña n
y'm / ... Copia dende a liña actual ata o marcador m

###Modo insertar

Comando Función
i Modo inserción no cursor
I Modo inserción ó principio da liña
a Modo inserción despois do cursor
A Modo inserción ó final da liña
o Modo inserción nunha nova liña debaixo da actual
O Modo inserción nunha nova liña enriba da actual
-Ctrl + h Borra o caracter anterior
-Ctrl + w Borra dende o cursor ata o inicio da palabra
-Ctrl + u Borra dende o cursor ata o principio da liña
-Ctrl + N, Ctrl + P Autocompletado de palabras (en modo insertar)
-Ctrl + X, Ctrl + L Autocompletado de liñas (en modo insertar)
-ESC Saír do modo insertar
Combinación Función
ea Insertar despois de unha palabra
bi Insertar antes de unha palabra

###Modo visual (selección)

Comando Función
v Modo visual no cursor
V Modo visual seleccionando as liñas completas
-o Moverse ó outro extremo da zona seleccionada
-Ctrl + v Modo visual en modo bloque
-O Moverse ó outro extremo do bloque
-y Copiar texto seleccionado
-d Cortar texto seleccionado
-> / -< Añade / Elimina identación
-u / -U Converter a minúsculas / maiúsculas
-iw Seleccionar unha palabra
-ip Seleccionar un parágrafo
-ib / -iB Seleccionar un bloque dentro de paréntesis () / chaves {}
-ab / -aB Seleccionar un bloque con paréntesis () / chaves {} incluídos
-ESC Saír do modo visual
Combinación Función
ggVG Selecciona todo
Vip Selecciona todo o parágrafo
Vn+ / Vn- Selecciona a liña actual e máis as n seguintes / anteriores
VnG Selecciona dende a liña actual, ata a liña n

###Buscar e reemprazar

Comando Función
/texto / ?texto Busca texto cara adiante / atrás
n / N Termo seguinte / anterior
  • / # | Busca a palabra sobre a que estamos, e vai ó termo seguinte / anterior :%s/textovello/textonovo/ | Reempraza a primeira expresión textovello por textonovo :%s/textovello/textonovo/g | Reempraza textovello por textonovo en todo o arquivo :%s/textovello/textonovo/gc | Reempraza textovello por textonovo en todo o arquivo pedindo confirmación

###Pestanas e Ventás (traballar con varios arquivos)

Comando Función
:e arquivo Abrir arquivo nun novo buffer
:ls Listar buffer
:bn / bnext Ir ó buffer seguinte
:bp / :bprev Ir ó buffer anterior
:bd Eliminar buffer (pechar arquivo)
:sp arquivo Abrir arquivo nun novo buffer, e dividir a pantalla hotizontalmente
:vsp Abrir arquivo nun novo buffer, e dividir a pantalla verticalmente
Ctrl + ws Dividir ventá horizontalmente
Ctrl + wv Dividir ventá verticalmente
Ctrl + ww Cambiar de ventá
Ctrl + wq Pechar ventá
Ctrl + wh/j/k/l Mover o cursor para a ventá esquerda/abaixo/arriba/dereita
:tabnew arquivo / :tabn arquivo Abrir arquivo nunha nova pestana
gt / :tabnext / :tabn Ir á pestana seguinte
gT / :tabprev / :tabp Ir á pestana anterior
ngt Ir á pestana número n
:tabmove n Move a pestana actual á posición n (comeza en 0)
:tabc / :tabclose Pechar tódalas pestanas e as súas ventás
:tabo / :tabonly Pechar tódalas pestanas excepto a actual

###Marcadores

Comando Función
mm Crea un marcador na letra m
'm Ir ó principio da liña do marcador m
`m Ir ó marcador m
:marks Lista os marcadores
:marks m Lista o marcador m
]' Mover á seguinte liña con un marcador en minúsculas
[' Mover á anterior liña con un marcador en minúsculas
]` Mover ó seguinte marcador en minúsculas
[` Mover ó anterior marcador en minúsculas
'. Mover ó lugar donde se produciu o último cambio no buffer actual
'" Mover ó último lugar donde se saíu do documento no buffer actual
:delmarks m Elimina o marcador m

###Miscelánea

Comando Función
ga Amosa o código ASCII do caracter

##Recursos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment