KELA Presentacion Costa Rica 2024 - evento Protégeles
Edición eficiente de texto con Vim
1. Edici´n eficiente de texto con Vim
o
Roberto Bonvallet
rbonvall@inf.utfsm.cl
Departamento de Inform´tica
a
Universidad T´cnica Federico Santa Mar´
e ıa
20 de agosto de 2009
20. Notaci´n
o
x : la tecla x presionada
: una tecla cualquiera presionada
mov : un movimiento realizado
op : una operaci´n
o
lala : el texto lala tipeado tal cual
21. Los comandos m´s paltosos del mundo
a
. : repite el ultimo comando
´
u : deshace el ultimo comando (undo)
´
Ctrl R : rehace lo deshecho (redo)
22. Dile no a las flechas
h , j , k , l
←, ↓ , ↑ , →.
23. Movimientos
w , b , e : word, beginning of word, end of word.
0 , $ : comienzo, final de l´
ınea
g g , G : comienzo, final del archivo
f , F : siguiente, anterior “ ” (find)
% : aparea par´ntesis
e
( , ) , { , } : moverse por oraciones y p´rrafos
a
Precedidos por un n´mero, se repiten tantas veces
u
24. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
25. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
26. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
27. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
28. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
29. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
30. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
31. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
32. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
33. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
34. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
35. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
36. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
37. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
38. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
39. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
40. $ 0 3 ) 2 } G 8 g g 5 Ctrl Y
f e ; ; 3 w % Ctrl F Ctrl O * n
41. Edici´n simple
o
x : suprime caracter
∼ : min´scula/may´scula
u u
p , P : pega despu´s, antes
e
J : unir l´
ıneas
r : reemplazar caracter
Ctrl A , Ctrl X : incrementar, decrementar n´mero
u
42. Edici´n con movimiento
o
d mov : delete
y mov : yank (copiar)
c mov : change
> mov : aumentar indentaci´n
o
g u mov : cambia a may´sculas
u
g ? mov : rot13
g q mov : dar formato
= mov : reindentar c´digo
o
Al usar el mismo comando como movimiento,
se aplica a la l´
ınea actual.
43. Seudomovimientos
op a ) : lo que est´ entre par´ntesis
a e
op i ) : lo que est´ entre par´ntesis, sin inclu´
a e ırlos
op a s : una oraci´n
o
op a p : un p´rrafo
a
op i ” : lo que est´ entre comillas
a
44. C´mo comenzar a escribir
o
i , a : antes, despu´s del cursor
e
I , A : al principio, final de la l´
ınea
o , O : en una l´
ınea nueva despu´s, antes de la actual
e
c mov : cambia texto
al finalizar, presione Esc
45. 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
46. 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
47. 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
48. 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
49. 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
50. 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
51. 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
52. 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
53. 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
54. 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
55. 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
56. 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
57. 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
58. 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
59. 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
60. 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
61. 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
62. 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
63. 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
64. 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
65. 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
66. 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
67. 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
68. 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
69. 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
70. Modo visual (aka seleccionar)
v : selecciona caracteres
V : selecciona l´
ıneas
Ctrl V : selecciona bloques
g v : repite selecci´n anterior
o
71. Comandos paltosos en modo inserci´n
o
Ctrl H , Ctrl U : borra el caracter anterior, hasta el final de
la l´
ınea
Ctrl T , Ctrl D : indenta, dedenta
Ctrl Y , Ctrl E : copia el caracter de arriba, abajo
Ctrl P , Ctrl N : completa con palabra anterior, posterior
Ctrl X Ctrl F : completa con nombre de archivo
72. 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
73. 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
74. 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
75. 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
76. 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
77. 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
78. 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
79. 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
80. 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
81. 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
82. 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
83. 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
84. 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
85. 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
86. 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
87. 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
88. 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
89. 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
90. 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
91. 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
92. 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
93. 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
94. 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
95. 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
96. 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
97. 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
98. 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
99. Modo ex, archivos
: e README Enter
: w foo.c Enter
: w Enter
: 3,$w Enter
: wq Enter
: q! Enter
: r bar.py Enter
: r! find . -name=’*.c’ Enter
100. Modo ex, sustituciones
: %s/textbf/emph/gc Enter
: ’<,’>s!f((.*)!f(0, 1, 0! Enter
: %s,UTFSM,<b>&</b>,g Enter
101. Modo ex, varios
: .,+5d Enter
: normal f#d$ Enter
: g/foo/d Enter
: g/bar$/normal I/* Ctrl V Esc A*/ Enter
: 1,.j Enter
: earlier 5m Enter
: %!sort Enter
102. B´squeda
u
/ patr´n
o Enter : busca el patr´n hacia adelante
o
? patr´n
o Enter : busca el patr´n hacia atr´s
o a
n , N : busca pr´xima/anterior ocurrencia de la ultima
o ´
b´squeda
u
∗ , # : busca pr´xima/anterior ocurrencia de la palabra
o
bajo el cursor
103. Mapeos y abreviaciones
: map <Space> <C-f> Enter
: imap jj <Esc> Enter
: imap FOR for()<Esc>i Enter
: iabbrev pq porque Enter
104. Macros
q : comienza a grabar una macro en el registro
@ : ejecuta la macro grabada en
@ @ : ejecuta la ultima macro ejecutada
´
105. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
106. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
107. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
108. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
109. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
110. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
111. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
112. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
113. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
114. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @
115. q z y y p Ctrl A f { Ctrl A q
@ z @ @ 1 0 @ @