blob: 8c90b8fda3487d7c19756bc69675d8bdf42486fe [file] [log] [blame]
fernandovilarino951d0252025-05-03 19:07:35 +02001===============================================================================
Damien Lejay8d9d2b22025-06-22 19:39:04 +02002= B e n v i d o a o t u t o r d o V I M - Versión 1.7 =
fernandovilarino951d0252025-05-03 19:07:35 +02003===============================================================================
Damien Lejay8d9d2b22025-06-22 19:39:04 +02004= C A P Í T U L O D O U S =
fernandovilarino951d0252025-05-03 19:07:35 +02005===============================================================================
6
Damien Lejay8d9d2b22025-06-22 19:39:04 +02007 Hic Sunt Dracones: se este é o súa primeira exposición ao vim, e
8 prefire iniciarse no capítulo introducturio, pode saír premendo
fernandovilarino951d0252025-05-03 19:07:35 +02009 :q <ENTER> .
10
Damien Lejay8d9d2b22025-06-22 19:39:04 +020011 O tempo aproximado requerido para completar este capítulo é de
12 8-10 minutos, dependendo de canto tempo use na experimentación.
fernandovilarino951d0252025-05-03 19:07:35 +020013
14~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Damien Lejay8d9d2b22025-06-22 19:39:04 +020015 Lección 2.1.1: OS REXISTROS CON NOME
fernandovilarino951d0252025-05-03 19:07:35 +020016
17
Damien Lejay8d9d2b22025-06-22 19:39:04 +020018 ** Almacene dúas palabras copiadas de xeito consecutivo, e logo pégueas. **
fernandovilarino951d0252025-05-03 19:07:35 +020019
Damien Lejay8d9d2b22025-06-22 19:39:04 +020020 1. Mova o cursor ata a liña inferior sinalada con --->.
fernandovilarino951d0252025-05-03 19:07:35 +020021
Damien Lejay8d9d2b22025-06-22 19:39:04 +020022 2. Navegue ata calquera carácter da palabra 'Xoán' e escriba "ayiw .
fernandovilarino951d0252025-05-03 19:07:35 +020023
Damien Lejay8d9d2b22025-06-22 19:39:04 +020024NEMÓNICO:
fernandovilarino951d0252025-05-03 19:07:35 +020025 dentro do rexistro(")
26 chamado (a)
27 pega (y)ank
28 o interior (i)nner
29 da palabra (w)ord
30
31 3. Navegue cara a adiante ata a palabra 'galetas'
32 ( fl ou 4fe ou $b ou /gal <ENTER> ) e teclee "byiw .
33
Damien Lejay8d9d2b22025-06-22 19:39:04 +020034 4. Navegue ata calquera carácter da palabra 'Uxío' e teclee
fernandovilarino951d0252025-05-03 19:07:35 +020035 ciw <C-r>a<ESC>
36
Damien Lejay8d9d2b22025-06-22 19:39:04 +020037NEMÓNICO:
fernandovilarino951d0252025-05-03 19:07:35 +020038 cambia (c)hange
39 o interior (i)nner
40 da palabra (w)ord
41 co <contido do rexistro (r)egister>
42 chamado (a)
43
44 5. Navegue ata calquera punto da palabra 'tartas' e teclee
45 ciw<C-r>b<ESC>
46
Damien Lejay8d9d2b22025-06-22 19:39:04 +020047---> a) De eiquí en adiante, Xoán ficará encarregado das racións de galetas.
48 b) Xa que logo, Uxío somentes terá poderes no que respecta ás tartas.
fernandovilarino951d0252025-05-03 19:07:35 +020049
Damien Lejay8d9d2b22025-06-22 19:39:04 +020050NOTA: O borrado tamén funciona nos rexistros, é dicir:
51 "sdiw borrará a palabra baixo o cursor e ficaráa no rexistro s.
fernandovilarino951d0252025-05-03 19:07:35 +020052
53REFERENCIAS: Rexistros :h registers
54 Rexistros con come: :h quotea
55 Movemento :h motion.txt<enter> /inner<enter>
56 CTRL-R :h insert<enter> /CTRL-R<enter>
57
58
59~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Damien Lejay8d9d2b22025-06-22 19:39:04 +020060 Lección 2.1.2: O REXISTRO DE EXPRESIÓN
fernandovilarino951d0252025-05-03 19:07:35 +020061
62
Damien Lejay8d9d2b22025-06-22 19:39:04 +020063 ** Insira o resultado dos cáculos sobre a marcha. **
fernandovilarino951d0252025-05-03 19:07:35 +020064
Damien Lejay8d9d2b22025-06-22 19:39:04 +020065 1. Mova o cursor ata a liña sinalada con --->.
fernandovilarino951d0252025-05-03 19:07:35 +020066
Damien Lejay8d9d2b22025-06-22 19:39:04 +020067 2. Navegue ata calquera carácter do número que aparece na liña.
fernandovilarino951d0252025-05-03 19:07:35 +020068
69 3. Teclee ciw<C-r>=60*60*24<ENTER> .
70
Damien Lejay8d9d2b22025-06-22 19:39:04 +020071 4. Na seguinte liña, entre no modo Inserir e engada a data de hoxe con:
fernandovilarino951d0252025-05-03 19:07:35 +020072 <C-r>=system('date')<ENTER>
73
Damien Lejay8d9d2b22025-06-22 19:39:04 +020074NOTA: Tódalas chamadas a sistema son dependentes do sistema operativo.
fernandovilarino951d0252025-05-03 19:07:35 +020075 Por exemplo, en Windows pode usar:
76 system('date /t') ou :r!date /t
77
Damien Lejay8d9d2b22025-06-22 19:39:04 +020078---> Esquecín o número exacto de segundos que ten un día; son 84600?
79---> A data de hoxe é:
fernandovilarino951d0252025-05-03 19:07:35 +020080
Damien Lejay8d9d2b22025-06-22 19:39:04 +020081NOTA: O mesmo pódese obter con :pu=system('date')
fernandovilarino951d0252025-05-03 19:07:35 +020082 ou, premendo menos teclas, con :r!date .
83
Damien Lejay8d9d2b22025-06-22 19:39:04 +020084REFERENCIAS: Rexistro de experesión :h quote=
fernandovilarino951d0252025-05-03 19:07:35 +020085
86
87~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Damien Lejay8d9d2b22025-06-22 19:39:04 +020088 Lección 2.1.3: OS REXISTROS NUMERADOS
fernandovilarino951d0252025-05-03 19:07:35 +020089
90
91 ** Prema yy e mais dd para ve-lo seu efecto nos rexistros. **
92
Damien Lejay8d9d2b22025-06-22 19:39:04 +020093 1. Mova o cursor ata a liña sinalada con --->.
fernandovilarino951d0252025-05-03 19:07:35 +020094
Damien Lejay8d9d2b22025-06-22 19:39:04 +020095 2. Copie a liña 0, e logo inspeccione os rexitros con :reg<enter> .
fernandovilarino951d0252025-05-03 19:07:35 +020096
Damien Lejay8d9d2b22025-06-22 19:39:04 +020097 3. Borre a liña 0 con "cdd, e logo inspeccione os rexistros.
98 (Onde espera que estea o contido da liña 0?)
fernandovilarino951d0252025-05-03 19:07:35 +020099
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200100 4. Continúe borrando cada liña sucesivamente, inspeccionando os rexistros
fernandovilarino951d0252025-05-03 19:07:35 +0200101 sobre a marcha.
102
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200103NOTA: Debería decatarse de que as liñas borradas máis antigas móvense cara a
104 embaixo na lista, consonte se engaden as novas liñas borradas.
fernandovilarino951d0252025-05-03 19:07:35 +0200105
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200106 5. Agora, poña (p) os seguintes rexistros en orde: c, 7, 4, 8, 2.
fernandovilarino951d0252025-05-03 19:07:35 +0200107 Por exemplo, usando "7p .
108
109---> 0. Esta
110 9. cambalear
111 8. mensaxe
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200112 7. é
fernandovilarino951d0252025-05-03 19:07:35 +0200113 6. en
114 5. eixo
115 4. unha
116 3. guerra
117 2. secreta.
118 1. tributo
119
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200120NOTA: O borrado de liñas enteiras (dd) permanece máis tempo nos rexistros
121 numerados có copiado de liñas enteiras ou de texto máis pequeno.
fernandovilarino951d0252025-05-03 19:07:35 +0200122
123REFERENCIAS: Rexistros numerados :h quote00
124
125
126~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200127 Lección 2.1.4: A BELEZA DAS MARCAS
fernandovilarino951d0252025-05-03 19:07:35 +0200128
129
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200130 ** Evitando conta-las liñas de código **
fernandovilarino951d0252025-05-03 19:07:35 +0200131
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200132NOTA: Un problema frecuente que acontece cando se programa é o desprazamento
133 entre pedazos de código. A seguinte técnica axuda a evita-lo cálculo
134 de números de liña asociados a operacions coma "a147d ou
fernandovilarino951d0252025-05-03 19:07:35 +0200135 :945,1091d a ou, incluso peor, usando primeiro
136 <C-r>=1091-945<ENTER> .
137
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200138 1. Mova o cursor ata a liña sinalada con --->.
fernandovilarino951d0252025-05-03 19:07:35 +0200139
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200140 2. Vaia á primeira liña da función e márquea con ma .
fernandovilarino951d0252025-05-03 19:07:35 +0200141
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200142NOTA: A posición exacta na liña NON é importante!
fernandovilarino951d0252025-05-03 19:07:35 +0200143
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200144 3. Navegue ata a fin da liña, e deseguido ata a fin do bloque de código
fernandovilarino951d0252025-05-03 19:07:35 +0200145 con $% .
146
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200147 4. Borre o bloque e póñao no rexistro 'a' con "ad'a .
fernandovilarino951d0252025-05-03 19:07:35 +0200148
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200149NEMÓNICO:
fernandovilarino951d0252025-05-03 19:07:35 +0200150 Dentro do rexistro(")
151 con nome de rexistro (a)
152 pon o borrado (d)eletion
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200153 dende o cursor ata a liña que contén a marca(')
fernandovilarino951d0252025-05-03 19:07:35 +0200154 de nome de marca (a)
155
156 5. Pegue o bloque entre BBB e CCC con "ap .
157
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200158NOTA: Practique esta operación múltiples veces,
fernandovilarino951d0252025-05-03 19:07:35 +0200159 ata chegar a facelo fluidamente: ma$%"ad'a
160
161---> AAA
162 function itGotRealBigRealFast() {
163 if ( somethingIsTrue ) {
164 doIt()
165 }
166 // the taxonomy of our function has changed and it
167 // no longer makes alphabetical sense in its current position
168
169 // imagine hundreds of lines of code
170
171 // naively you could navigate to the start and end and record or
172 // remember each line number
173 }
174 BBB
175 CCC
176
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200177NOTA: As marcas e mailos rexistros non comparten un espazo común de nomes,
178 de xeito que un rexistro 'a' é completamente independente dunha
fernandovilarino951d0252025-05-03 19:07:35 +0200179 marca 'a'. En troques, isto non acontece entre os rexistros
180 e mailas macros.
181
182REFERENCIAS: Marcas :h marks
183 Movemento de marcas :h mark-motions (diferencia entre ' e `)
184
185~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200186 Lección 2.1 RESUMO
fernandovilarino951d0252025-05-03 19:07:35 +0200187
188 1. Gardar texto (por medio de copiar ou borrar), e recuperalo (pegar) dende
189 un total de 26 rexistros (a-z).
190 2. Pegar unha palbra enteira dende calquer sitio dentro dunha palara: yiw
191 3. Cambiar unha palabra enteira dende calquer punto de palabra: ciw
192 4. Inserir texto directamente dende os rexistros en modo Inserir: (C-r)a
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200193 5. Inseri-lo resultado de operacións aritméticas simples no modo
fernandovilarino951d0252025-05-03 19:07:35 +0200194 Inserir: (C-r)=60*60<ENTER>
195 6. Inseri-los resultados de chamadas ao sistema no modo Inserir:
196 (C-r)=system('ls -1')
197 7. Inspecciona-los rexistros con :reg .
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200198 8. Aprende-lo destino final do borrado de liñas enteiras (dd) nos
199 rexistros numerados, é dicir, descendendo dende o reistro 1 ao 9.
200 Decatarse de que o borrado de liñas enteiras presérvase nos rexistros
201 numerados máis tempo que calquera outra operación.
202 9. Aprende-lo destino final de tódalas copias feitas nos rexistros
203 numerados e cómo son de efímeros.
fernandovilarino951d0252025-05-03 19:07:35 +0200204 10. Situar marcas dende o modo de comandos m[a-zA-Z0-9] .
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200205 11. Moverse a una liña cunha marca con ' .
fernandovilarino951d0252025-05-03 19:07:35 +0200206
207~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200208 Isto conclúe o capítulo dows do Vim Tutor. Este é traballo en progreso.
209 Este capítulo foi escrito por Paul D. Parker.
fernandovilarino951d0252025-05-03 19:07:35 +0200210
211~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Damien Lejay8d9d2b22025-06-22 19:39:04 +0200212 Traducido do inglés ao galego por Fernando Vilariño.
213 Correo electrónico: fernando@cvc.uab.es.
fernandovilarino951d0252025-05-03 19:07:35 +0200214
215~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~