Carlos Alvarado de la Portilla No olvidar. Para no caer. VIM.
Edición eficiente de texto con Vim
-
Upload
roberto-bonvallet -
Category
Technology
-
view
790 -
download
3
Transcript of Edición eficiente de texto con Vim
Edicion eficiente de texto con Vim
Roberto [email protected]
Departamento de InformaticaUniversidad Tecnica Federico Santa Marıa
20 de agosto de 2009
Diapos
git clone git://github.com/rbonvall/charla-vim.git
Reutilice a su antojo
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
y y p 2 f i c w lib Esc 3 j
c i } . . . Esc : w fact.c Enter : make Enter
Utilizacion del teclado
Figura: a la Bloc de Notas
Utilizacion del teclado
Figura: a la Vim
Notacion
I x : la tecla x presionada
I : una tecla cualquiera presionada
I mov : un movimiento realizado
I op : una operacion
I lala : el texto lala tipeado tal cual
Los comandos mas paltosos del mundo
I . : repite el ultimo comando
I u : deshace el ultimo comando (undo)
I Ctrl R : rehace lo deshecho (redo)
Dile no a las flechas
I , h , j , k , l
I / ← , ↓ , ↑ , → .
Movimientos
I w , b , e : word, beginning of word, end of word.
I 0 , $ : comienzo, final de lınea
I g g , G : comienzo, final del archivo
I f , F : siguiente, anterior “ ” (find)
I % : aparea parentesis
I ( , ) , { , } : moverse por oraciones y parrafos
I Precedidos por un numero, se repiten tantas veces
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
$ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
Edicion simple
I x : suprime caracter
I ∼ : minuscula/mayuscula
I p , P : pega despues, antes
I J : unir lıneas
I r : reemplazar caracter
I Ctrl A , Ctrl X : incrementar, decrementar numero
Edicion con movimiento
I d mov : delete
I y mov : yank (copiar)
I c mov : change
I > mov : aumentar indentacion
I g u mov : cambia a mayusculas
I g ? mov : rot13
I g q mov : dar formato
I = mov : reindentar codigo
I Al usar el mismo comando como movimiento,se aplica a la lınea actual.
Seudomovimientos
I op a ) : lo que esta entre parentesis
I op i ) : lo que esta entre parentesis, sin incluırlos
I op a s : una oracion
I op a p : un parrafo
I op i ” : lo que esta entre comillas
Como comenzar a escribir
I i , a : antes, despues del cursor
I I , A : al principio, final de la lınea
I o , O : en una lınea nueva despues, antes de la actual
I c mov : cambia texto
I al finalizar, presione Esc
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
6 g g f m c i w enumerate Esc 5 j h
. 4 k A , Esc j . j . j . r . k
F o x p d a p } p
Modo visual (aka seleccionar)
I v : selecciona caracteres
I V : selecciona lıneas
I Ctrl V : selecciona bloques
I g v : repite seleccion anterior
Comandos paltosos en modo insercion
I Ctrl H , Ctrl U : borra el caracter anterior, hasta el final dela lınea
I Ctrl T , Ctrl D : indenta, dedenta
I Ctrl Y , Ctrl E : copia el caracter de arriba, abajo
I Ctrl P , Ctrl N : completa con palabra anterior, posterior
I Ctrl X Ctrl F : completa con nombre de archivo
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
o <li>Mi fotolog</li> Esc . F f v 3 l
c b Esc . . . o ... Ctrl X Ctrl F ... Esc : w Enter
f . g f . . . Ctrl O . . . Ctrl V 5 j
I <a href=""> Esc
Modo ex, archivos
I : e README Enter
I : w foo.c Enter
I : w Enter
I : 3,$w Enter
I : wq Enter
I : q! Enter
I : r bar.py Enter
I : r! find . -name=’*.c’ Enter
Modo ex, sustituciones
I : %s/textbf/emph/gc Enter
I : ’<,’>s!f(\(.*\)!f(0, \1, 0! Enter
I : %s,UTFSM,<b>&</b>,g Enter
Modo ex, varios
I : .,+5d Enter
I : normal f#d$ Enter
I : g/foo/d Enter
I : g/bar$/normal I/* Ctrl V Esc A*/ Enter
I : 1,.j Enter
I : earlier 5m Enter
I : %!sort Enter
Busqueda
I / 〈patron〉 Enter : busca el patron hacia adelante
I ? 〈patron〉 Enter : busca el patron hacia atras
I n , N : busca proxima/anterior ocurrencia de la ultimabusqueda
I ∗ , # : busca proxima/anterior ocurrencia de la palabrabajo el cursor
Mapeos y abreviaciones
I : map <Space> <C-f> Enter
I : imap jj <Esc> Enter
I : imap FOR for()<Esc>i Enter
I : iabbrev pq porque Enter
Macros
I q : comienza a grabar una macro en el registro
I @ : ejecuta la macro grabada en
I @ @ : ejecuta la ultima macro ejecutada
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @