Está en la página 1de 7

********************************************************

* *
* Comandos Vim *
* *
********************************************************

MODOS
**************
Modo normal -------------------------------------------- ESC
Modo comandos ------------------------------------------ Q
Modo visual -------------------------------------------- v
Modo visual (seleccin por lneas) --------------------- V
Modo visual (seleccin por bloques) -------------------- CTRL-v
Modo insercin (cursor) -------------------------------- i
Modo insercin (al principio de la lnea) -------------- I
Modo insercin (despus del cursor) -------------------- a
Modo insercin (al final de la lnea) ------------------ A
Modo insercin (nueva lnea debajo del cursor) --------- o
Modo insercin (nueva lnea arriba del cursor) --------- O
Ejecutar mandato externo ------------------------------- :!(CMD)
Abrir una SHELL ---------------------------------------- :shell

FICHEROS
****************
Salir sin guardar -------------------------------------- :q! ZQ
Guardar y salir ---------------------------------------- :wq :x ZZ
Guardar ------------------------------------------------ :w (FILE)
Guardar parte de un fichero ---------------------------- :(nl1),(nl2) w (FILE)
Insertar fichero en el cursor -------------------------- :r (FILE)
Abrir archivo ------------------------------------------ :e (FILE)
Mostrar situacin de fichero y estado ------------------ CTRL-g

BUFFERS
***************
Listar los buffers abiertos ---------------------------- :buffers
Ir a un determinado buffer ----------------------------- :buffer (nb)
Ir al siguiente buffer --------------------------------- :bnext bn
Ir al buffer anterior ---------------------------------- :bprevious bp
Ir al primer buffer ------------------------------------ :bfirst bf
Ir al ltimo buffer ------------------------------------ :blast bl
Crear un buffer ---------------------------------------- :badd (FILE)
Eliminar buffer actual --------------------------------- :bdelete bd
Eliminar un determinado buffer ------------------------- :bd! (nb)

MOVIMIENTO
******************
Arriba ------------------------------------------------- k UP
Abajo -------------------------------------------------- j DOWN
Izquierda ---------------------------------------------- h LEFT
Derecha ------------------------------------------------ l RIGHT
Ir al principio de lnea ------------------------------- 0
Ir al final de lnea ----------------------------------- $
Ir al primer carcter no blanco de la lnea ------------ ^
Ir al anterior prrafo (o bloque de cdigo) ------------ {
Ir al siguiente prrafo (o bloque de cdigo) ----------- }
Avanzar a principio de palabra ------------------------- w
Avanzar a principio de palabra (blancos) --------------- W
Avanzar a fin de palabra ------------------------------- e
Avanzar a fin de palabra (blancos) --------------------- E
Retroceder a principio de palabra anterior ------------- b
Retroceder a principio de palabra anterior (blancos) --- B
Retroceder a fin de palabra ---------------------------- ge
Retroceder a fin de palabra (blancos) ------------------ gE
Buscar carcter hacia delante -------------------------- f
Buscar carcter hacia atrs ---------------------------- F
Igual que f pero deja el cursor antes del carcter ----- t
Igual que F pero deja el cursor despus del carcter --- T
Ir a carcter hacia atrs ------------------------------ T
Repetir el ltimo comando f, F, t o T hacia delante ---- ;
Repetir el ltimo comando f, F, t o T hacia atrs ------ ,
Ir al principio del fichero ---------------------------- gg
Ir al final del fichero -------------------------------- G
Ir a una determinada lnea ----------------------------- (nl)G
Situar cursor al principio de pgina visible ----------- H
Situar cursor en medio de pgina visible --------------- M
Situar cursor al final de pgina visible --------------- L
Situar lnea actual en el centro de la pantalla -------- zz
Situar lnea actual al principio de la pantalla -------- zt
Situar lnea actual al final de la pantalla ------------ zb
Avanzar pgina ----------------------------------------- CTRL-f
Retroceder pgina -------------------------------------- CTRL-b
Avanzar media pgina ----------------------------------- CTRL-d
Retroceder media pgina -------------------------------- CTRL-u
Avanzar una lnea -------------------------------------- CTRL-e
Retroceder una lnea ----------------------------------- CTRL-y

FORMATO
***************
Indentar seleccin ------------------------------------- =
Corregir indentacin de todo el fichero ---------------- gg=G
Ajustar lnea a ancho fijo ----------------------------- gq
Ajustar todo el documento al ancho fijo ---------------- gggqG
Alinear texto a la izquierda --------------------------- :left
Alinear texto a la derecha ----------------------------- :right
Alinear texto al centro -------------------------------- :center
Justificar texto --------------------------------------- :Justify

OPERACIONES
*******************
Borrar ------------------------------------------------- d
Borrar hasta fin de lnea ------------------------------ D
Borrar una lnea entera -------------------------------- dd
Cambiar ------------------------------------------------ c
Cambiar hasta fin de lnea ----------------------------- C
Sustituir e insertar ----------------------------------- s
Borrar lnea e insertar -------------------------------- S
Borrar carcter ---------------------------------------- x
Borrar carcter anterior al cursor --------------------- X
Copiar ------------------------------------------------- y
Copiar una lnea entera -------------------------------- yy Y
Pegar texto detrs del cursor -------------------------- p
Pegar texto antes del cursor --------------------------- P
Remplazar carcter ------------------------------------- r
Activar modo de reemplazo ------------------------------ R
Deshacer ltimo cambio --------------------------------- u
Deshacer cambios de lnea ------------------------------ U
Deshacer lo deshecho ----------------------------------- CTRL-r
Autocompletar normal ----------------------------------- CTRL-n
Navegar por el autocompletado -------------------------- CTRL-n CTRL-p

PLIEGUES
****************
Establecer seccin de texto para plegar/desplegar ------ zf
Plegar seccin de texto -------------------------------- zc
Desplegar seccin de texto ----------------------------- zo
Alternar plegar/desplegar ------------------------------ za
Plegar todos los pliegues de un fichero ---------------- zM
Desplegar todos los pliegues del fichero --------------- zR
Eliminar un pliegue ------------------------------------ zd
Eliminar todos los pliegues del fichero ---------------- zE

REGISTROS
*****************
Existen numerosos registros donde podemos copiar texto y pegar desde ellos.

Estos registros son los siguientes:


Por defecto -------------------------------------------- ""
Normales ----------------------------------------------- "a hasta "z
Contiene el texto del comando y (yank) ms reciente ---- "0
Guardan de forma rotatoria los ltimos 9 borrados ------ "1 hasta "9
Portapapeles del sistema operativo --------------------- "+ (X11) "* (windows)
Agujero negro. Lo que se escribe en l no se guarda ---- "_

Mostrar contenido de los registros temporales ---------- :registers

BUSCAR Y REMPLAZAR
**************************
Buscar texto (hacia abajo) ----------------------------- /(texto)
Buscar texto (hacia arriba) ---------------------------- ?(texto)
Repetir bsqueda (hacia abajo) ------------------------- n
Repetir bsqueda (hacia arriba) ------------------------ N

Buscar pareja de bloque ('[',']','(',')','{','}') ------ %

Remplazar CAD1 por CAD2 en una lnea ------------------- :s/CAD1/CAD2


Remplazar todos los CAD1 por CAD2 en una lnea --------- :s/CAD1/CAD2/g
Remplazar CAD1 por CAD2 entre dos nmeros de lnea ----- :(N1),(N2)s/CAD1/CAD2/g
Remplazar CAD1 por CAD2 en todo el fichero ------------- :%s/CAD1/CAD2/g
Pedir confirmacin de remplazo 'c' --------------------- :%s/CAD1/CAD2/gc

PESTAAS
****************
Nueva pestaa (con archivo opcional) ------------------- :tabe (FILE)
Siguiente pestaa -------------------------------------- gt
Pestaa anterior --------------------------------------- gT
Ir a la pestaa nmero N - ----------------------------- (N)gt
Ir a la ltima pestaa utilizada ----------------------- gl
Mostrar lista de pestaas ------------------------------ :tabs
Mover pestaa a posicin N (sin N va al final) --------- :tabm(N)

SPLITS
***************
Crear split vertical ----------------------------------- :vs
Crear split horizontal --------------------------------- :sp
Navegar entre splits ----------------------------------- CTRL-w(cursor)
Redimensionar split vertical --------------------------- CTRL-w < CTRL-w >
Redimensionar split horizontal ------------------------- CTRL-w + CTRL-w -
Rotar splits ------------------------------------------- CTRL-w r CTRL-w R
Mover splits ------------------------------------------- CTRL-w {H,J,K,L}

MBITOS
***************
Estructura:
<operador>[contador|movimiento]<objeto>

Operadores principales:
Borrar ----------------------------------------------- d
Cambiar ---------------------------------------------- c
Copiar ----------------------------------------------- y

Movimientos principales:
Todo ------------------------------------------------- a
Dentro de -------------------------------------------- i
Hasta ------------------------------------------------ t
Encuentra hacia adelante ----------------------------- f
Encuentra hacia atrs -------------------------------- F

Objetos principales:
Palabra ---------------------------------------------- w
Oracin ---------------------------------------------- s
Prrafo ---------------------------------------------- p
Etiqueta --------------------------------------------- t
Comillas simples ------------------------------------- '
Comillas dobles -------------------------------------- "
Parntesis ------------------------------------------- (
Corchetes -------------------------------------------- [
Llaves ----------------------------------------------- {
Parnesis angulares ---------------------------------- <

Ejemplos:
Se utiliza el comando "d" para esta tabla pero se puede sustituir por
cualquier otro que admita mbito de actuacin ("c", "y", etc).

Borrar palabra (hasta principio de prxima) ---------- daw


Borrar palabra (exclusivamente palabra) -------------- diw
Borrar frase (hasta principio de prxima) ------------ das
Borrar frase (exclusivamente frase) ------------------ dis
Borrar prrafo (hasta prximo prrafo) --------------- dap
Borrar prrafo (exclusivamente prrafo) -------------- dip
Borrar parntesis con su contenido ------------------- dab da( da)
Borrar contenido de unos parntesis ------------------ dib di( di)
Borrar llaves con su contenido ----------------------- daB da{ da}
Borrar contenido de unas llaves ---------------------- diB di{ di}
Borrar comillas simples y su contenido -------------- da'
Borrar contenido de comillas simples ----------------- di'
Borrar comillas dobles y su contenido ---------------- da"
Borrar contenido de comillas dobles ------------------ di"
Borrar parntesis angulares y su contenido ----------- da<
Borrar contenido de parntesis angulares ------------- di<
Borrar tag (<p> y </p>, etc) y su contenido ---------- dat
Borrar contenido de tag (<p> y </p>, etc) ------------ dit

Borrar hasta prximo principio de palabra ------------ dw


Borrar hasta anterior principio de palabra ----------- db
Borrar hasta prximo fin de palabra ------------------ de
Borrar hasta anterior fin de palabra ----------------- dge
Borrar hasta principio de frase ---------------------- d(
Borrar hasta final de frase -------------------------- d)
Borrar hasta principio de prrafo -------------------- d{
Borrar hasta final de prrafo ------------------------ d}
Borrar hasta llave de apertura ----------------------- d[{
Borrar hasta llave de cierre ------------------------- d]}
Borrar hasta parntesis de apertura ------------------ d[(
Borrar hasta parntesis de cierre -------------------- d])
Borrar hasta el inicio de la marca de comentarios ---- d[*
Borrar hasta el final de la marca de comentarios ----- d]*
Borrar hasta el carcter que se empareje con el que
hay bajo el cursor (parntesis, llaves o corchetes) -- d%

Borrar carcter bajo el cursor ----------------------- dl


Borrar carcter antes del cursor --------------------- dh
Borrar hasta lnea superior -------------------------- dk
Borrar hasta lnea inferior -------------------------- dj

Borrar hasta final de lnea -------------------------- d$ D


Borrar hasta principio de lnea ---------------------- d0
Borrar hasta primer carcter de lnea ---------------- d^
Borrar hasta la lnea n N --------------------------- dNG
Borrar hasta la primera lnea ------------------------ dgg
Borrar hasta la ltima lnea ------------------------- dG

Borrar hasta la primera lnea de la pantalla --------- dH


Borrar hasta la lnea central de la pantalla --------- dM
Borrar hasta la ltima lnea de la pantalla ---------- dL

Borrar hasta el carcter x (incluido) ---------------- dfx


Borrar hasta el carcter anterior a x ---------------- dtx
Borrar hacia atrs hasta el carcter x (incluido) ---- dFx
Borrar hacia atrs hasta el carcter anterior a x ---- dTx

Borrar hasta la marca x ------------------------------ d'x


Borrar hasta la posicin del cursor antes del ltimo
antes del ltimo salto ------------------------------- d''
Borrar hasta la posicin del cursor la ltima vez que
se edit el fichero ---------------------------------- d'"
Borrar hasta el lugar donde empez el ltimo cambio -- d'[
Borrar hasta el lugar donde termin el ltimo cambio - d']

MACROS
**************
Empezar a grabar macro --------------------------------- q(key)
Finalizar grabacin de macro --------------------------- q
Invocar macro ------------------------------------------ @(key)
MARCAS
**************
Insertar marca ----------------------------------------- m(a-z)
Insertar marca global ---------------------------------- m(A-Z)
Ir a lnea de marca ------------------------------------ '(a-z)
Volver a lnea de marca anterior ----------------------- ''
Ir a posicin exacta de marca -------------------------- `(a-z)
Volver a posicin exacta de marca anterior ------------- ``
Ver todas las marcas ----------------------------------- :marks
Borrar marca ------------------------------------------- :delmarks (marca)

CORRECTOR ORTOGRFICO
*****************************
Seleccionar idioma ------------------------------------- :set spelllang=CO_DE
Activar corrector -------------------------------------- :set spell
Desactivar corrector ----------------------------------- :set nospell
Siguiente palabra mal escrita -------------------------- ]s
Anterior palabra mal escrita --------------------------- [s
Marcar palabra como buena ------------------------------ zg
Marcar palabra como mala ------------------------------- zw
Mostrar sugerencias ------------------------------------ z=

EDICIN REMOTA
**********************
Conexin via scp (protocolo ssh):
Edicin de un archivo:
:e scp://name@server//path/to/file/FILE
Navegacin de directorios:
:e scp://server/

Conexin via ftp:


:e ftp://name@server/

PLUGINS
***************
Airline
Instalar fuentes PowerLine:
https://powerline.readthedocs.io/en/master/installation.html#patched-fonts
https://github.com/powerline/fonts
Aadir a vimrc:
let g:airline_powerline_fonts = 1

Gtk-vim-syntax
$ cp ~/.vim/bundle/gtk-vim-syntax/c.vim.example ~/.vim/syntax/c.vim

Jedi-Vim (Python autocomplete)


Autocompletar ---------------------------------------- CTRL-SPACE

jQuery
$ cp ~/.vim/bundle/jQuery/syntax/jquery.vim ~/.vim/syntax/
Aadir la siguiente linea a .vimrc:
au BufRead,BufNewFile *.js set ft=javascript syntax=jquery

Markdown en vim
En ArchLinux y derivadas ejecutar:
$ yaourt -S vim-instant-markdown
En otras, consultar https://github.com/suan/vim-instant-markdown

OmniCppComplete
Autocompletar ---------------------------------------- CTRL-x CTRL-o
Navegar por el autocompletado ------------------------ CTRL-n CTRL-p

python-syntax
$ cp ~/.vim/bundle/python-syntax/syntax/python.vim ~/.vim/syntax/

SDL2
$ cp -r ~/.vim/bundle/sdl2.vim/after/syntax/* ~/.vim/syntax/

vim-php-manual
Manual offline --------------------------------------- SHIFT-k
Manual online ---------------------------------------- CTRL-h

Vundle
Instalacin:
$ mkdir ~/.vim/bundle
$ git clone https://github.com/VundleVim/Vundle.vim.git
~/.vim/bundle/Vundle.vim
Listar plugins --------------------------------------- :PluginList
Instalar plugins ------------------------------------- :PluginInstall
Eliminar plugins ------------------------------------- :PluginClean