File: tutor2.es

package info (click to toggle)
vim 2%3A9.1.2103-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 93,456 kB
  • sloc: ansic: 433,730; cpp: 6,399; makefile: 4,597; sh: 2,397; java: 2,312; xml: 2,099; python: 1,595; perl: 1,419; awk: 730; lisp: 501; cs: 458; objc: 369; sed: 8; csh: 6; haskell: 1
file content (321 lines) | stat: -rw-r--r-- 13,163 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
===============================================================================
=     B i e n v e n i d o   a l   t u t o r   d e   V I M  -  Versión 1.7     =
===============================================================================
=	                         CAPÍTULO DOS                                 =
===============================================================================

     Hic Sunt Dracones: si esta es tu primera vez usando Vim y tienes la
     intención de aprovechar el capítulo de introducción, simplemente escribe
     :q!<ENTER> y ejecuta vimtutor para empezar por el Capítulo 1.

     El tiempo aproximado para completar este capítulo es de 8-10 minutos,
     dependiendo de cuanto tiempo dediques a experimentar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

		     Lección 2.1.1: DOMINAR LOS OBJETOS DE TEXTO

** Operar en bloques de texto lógicos con precisión usando objetos de texto. **

  1. Practica las operaciones con palabras:
     - Situa el cursor en cualquier palabra de la línea inferior
     - Escribe  diw  para eliminar la palabra DENTRO donde está el cursor
       (la palabra sin el espacio circundante)
     - Escribe  daw  para eliminar UNA PALABRA
       (incluyendo espacios en blanco al final)
     - Prueba con otras operaciones:  ciw  (cambiar),  yiw  (copiar),
       gqiw  (formato)

---> Practica aquí: "Vim's", (text_object), y aquí palabras 'poderosas'.

  2. Trabaja con contenido entre paréntesis, corchetes o llaves:
     - Situa el cursor dentro de cualquier par de los símbolos () {} [] <>
     - Escribe  di(  o  dib  (eliminar dentro de los paréntesis)
     - Escribe  da(  o  dab  (eliminar alrededor de los paréntesis)
     - Prueba lo mismo con  i" o con  a"  para las comillas
     - Prueba con  it o con  at  para etiquetas HTML/XML

---> Ejemplos de prueba: con {llaves}, [corchetes], <ángulos> y "comillas".

  3. Manipulación de párrafos y frases:
     - Utiliza  dip  para eliminar el párrafo donde se encuentra el cursor
     - Utiliza  vap  para seleccionar visualmente el párrafo entero
     - Prueba  das  para eliminar una frase
       (funciona entre símbolos de puntuación .!?)

  4. Combinaciones avanzadas:
     - ciwnuevo<ESC>     - Cambiar la palabra actual por "nuevo"
     - ciw"<CTRL-R>-"<ESC> - Encierra la palabra actual entre comillas
     - gUit              - Convertir a mayúsculas el contenido de la
			               etiqueta HTML donde esté el cursor
     - va"p              - Seleccionar el texto entre comillas y pegarlo sobre él

---> Ejercicio final: (Modificar "el" texto) al [aplicar {varias} operaciones]<

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

		     Lección 2.1.2: LOS REGISTROS NOMINALES


 ** Almacenar dos palabras copiadas de manera consecutiva y después pegarlas **

  1. Mueve el cursor a la línea inferior marcada con --->

  2. Situa el cursor en cualquier parte de la palabra 'Edward' y escribe "ayiw

REGLA NEMOTÉCNICA: dentro del registo (") llamado (a) (y)copia
                   (i)entera la (w)palabra

  3. Mueve el cursor a la palabra 'galletas' (ft o 2fg o $1b o /lle<ENTER>)
     y escribe   "byiw

  4. Situa el cursos en cualquier parte de la palabra 'Vince'
     y escribe  ciw<CTRL-R>a<ESC>

REGLA NEMOTÉCNICA: (c)ambia el (i)interior de la (w)palabra
                   por el <contenido del (r)egistro> llamado (a)

  5. Navega hasta cualquier punto de la palabra 'tarta'
     y escribe  ciw<CTRL-R>b<ESC>

--->  a) Edward se encargará de las raciones de galletas
      b) En esta función, Vince solo tentrá poderes sobre la tarta

NOTA: Eliminar también funciona dentro de los registros, por ejemplo:
      "sdiw  eliminará la palabra bajo el cursor en el registro s.

REFERENCIAS: 	Registros 		:h registers
		Registros nominales     :h quotea
		Movimiento		:h motion.txt<ENTER> /inner<ENTER>
		CTRL-R			:h insert<ENTER> /CTRL-R<ENTER>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

		     Lección 2.1.3: EL REGISTRO DE EXPRESIÓN


     ** Insertar los resultados de los cálculos sobre la marcha **

  1. Situa el cursor sobre la línea inferior marcada con --->

  2. Navega hasta cualquier parte del número que se muestra

  3. Escribe  ciw<CTRL-R>  seguido por =60*60*24<ENTER>

  4. En la línea siguiente, entra en modo insertar y añade la fecha actual con
     <CTRL-R> seguido por  =system('date')<ENTER>

NOTA: Todas las llamadas al sistema dependen del sistema operativo utilizado.
      Por ejemplo en Windows hay que usar  system('date /t')   o  :r!date /t

---> He olvidado el número exacto de segundos en un días ¿son 84600?
     La fecha actual es:

NOTA: se puede obtener el mismo resultado con  :pu=system('date')
      o, usando menos pulsaciones de teclas  :r!date

REFERENCIA: 	Registro de expresión	:h quote=

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

		     Lección 2.1.4: LOS REGISTROS NUMERADOS


   ** Pulsa  yy  y  dd  para ser testigo de sus efectos en los registros **

  1. Situa el cursor sobre la línea inferior marcada con --->

  2. Copia la línea marcada con 0,
     después revisa los registros mediante :reg<ENTER>

  3. Elimina la línea 0 mediante  "cdd, después revisa los registros
     (¿Dónde esperas que esté la línea 0?)

  4. Continúa eliminado cada línea sucesivamente,
     inspencciona :reg mientras lo haces

NOTA: Deberías comprobar cómo las líneas completas eliminadas
      van bajando en la lista, cada vez que nuevas líneas eliminadas se añaden

  5. Ahora (p)ega los siguiente registros en orden; 0, 7, 4, 2, 8. Así: "7p

---> 0. Este
     9. tambaleante
     8. secreto
     7. es
     6. en
     5. eje
     4. un
     3. guerra
     2. mensaje
     1. tributo

NOTA: La eliminación completa de líneas (dd) persisten más en los registros
      numerados que las copias completas de lína o las eliminaciones que
      implican pequeños movimientos

REFERENCIA: 	Registros numerados	:h quote0

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

		     Lección 2.1.5: REGISTROS ESPECIALES

 ** Utilizar el portapappeles del sistema y los registros de agujero negro **
                    ** para una edición avanzada **

 Nota: El uso del portapapeles del sistema requiere de bibliotecas X11/Wayland
       en sistemas Linux Y una compilación de Vim con la opción "+clipboard"
       (normalmente una compilación enorme). Se puede comprobar mediante
       ":version"  o ":echo has('clipboard_working')"

  1. Registros del portapapeles  +  and  *  :
     - "+y  - Copiar al portapapeles del sistema
       (Por ejemplo: "+yy para copiar en el portapapeles la línea actual)
     - "+p  - Pegar del portapapeles del sistema
     - "* es la selección principal de X11 (el botón central),
       "+ es el portapapeles

---> Prueba: "+yy después pega la línea en otra aplicación
	     mediante Ctrl-V o Cmd+V

  2. El registro de agujero negro _  para texto descartado:
     - "_daw  - Elimina una palabra sin guardarla en ningún registro
     - Útil cuando no quieres sobreescribir el registro predeterminado "
     - Ten en cuenta que utiliza el objeto de texto "una Palabra" visto
       en la lección anterior
       lession
     - "_dd   - Elimina una línea sin guardarla
     - "_dap  - Elimina un párrafo sin almacenarlo
     - Combinado con un conteo: 3"_dw

---> Practica: Utiliza  "_diw en cualquier palabra para eliminarla sin afectar
               al historial de copiado

  3. Combinado con unas selecciones visuales:
     - Selecciona un texto con V y después pulsa "+y
     - Para pegarlo desde el portapapeles en el modo insertar pulsa: <CTRL-R>+
     - Intenta abrir otra aplicación y péga el texto desde el portapapeles

  4. Recuerda:
     - Los registros del portapapeles funcionan a través de diferentes
       instancias de Vim
     - El registro del portapapelesno siempre está funcional
     - El agujero negro previene el sobreescribir accidentalmente un registro
     - El registro predeterminado " todavía está disponible para una acción
       normal de copado/pegado
     - Los registros nominales (a-z) permanecen privados para cada sesión de Vim

  5. Problemas con el portapapeles:
     - Comprueba que tu Vim lo admite mediante :echo has('clipboard_working')
     - Si el comando anterior devuelve un 1 significa que está disponible,
       Si devuelve un 0, significa que esa compilación de Vim no lo admite.
     - En Linux, se puede necesitar el paquete vim-gtk o vim-x11 package
       (comprueba :version output)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

		     Lección 2.1.6: LA BELLEZA DE LAS MARCAS

		** El programador que rehuye de la aritmética **

NOTA: Un dilema común cuando se está creando código es mover grandes porciones
      de código.
      La siguiente técnica ayuda a evitar los cálculos asociados a los números
      de línea con operaciones como  "a147d   o   :945,1091d a   o o incluso peor
      i<CTRL-R> seguido por   =1091-945<ENTER>

  1. Mueve el cursor hasta la línea inferior marcada con --->

  2. Ve a la primera línea de la función marcada con   ma

NOTA: ¡La posición exacta dentro de la línea NO es importante!

  3. Navega hasta el final de la línea y después hasta el final del
     bloque del código mediante  $%

  4. Elimina el bloque y guárdalo dentro del registro a mediante  "ad'a

REGLA NEMOTÉCNICA: dentro del registro(") llamado (a) coloca lo que he
		   (d)eliminado desde el cursor hasta la LÍNEA que
                   contiene la marca(') (a)

  5. Pega el contenido del bloque entre BBB y CCC mediante   "ap

NOTA: practica esta operación varias veces hasta que tengas soltura   ma$%"ad'a

---> AAA
     function itGotRealBigRealFast() {
       if ( somethingIsTrue ) {
         doIt()
       }
       // La taxonomía de nuestra función ha cambiado y
       // Ya no tiene sentido alfabético en su posición actual

       // imagina que aquí hay cientos de líneas de código

       // de manera ingenua podrías navegar hasta el comienzo y hasta el final y
       // apuntar o recordar cada número de la línea
     }
     BBB
     CCC

NOTA: Las marcas y los registros no comparten sus nombres. Así pues el
      registro a es completamente independiente de la marca a.
      Esto no se cumple con los registros y las macros.

REFERENCIA: 	Marcas 				:h marks
		Movimientos con las marcas	:h mark-motions
						(diferencia entre ' y `)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

		     Lección 2.1 RESUMEN

  1. Los objetos de texto ofrecen precisión a la hora de editar:
     - iw/aw - dentro/alrededor de una palabra
     - i[/a[ - dentro/alrededor de un paréntesis, corchete, etc
     - i"/a" - dentro/alrededor de unas comillas quotes
     - it/at - dentro/alrededor de una etiqueta
     - ip/ap - dentro/alrededor de un párrafo
     - is/as - dentro/alrededor de una frase

  2. Para almacenar (copiar o eliminar) un texto dentro y volverlo a utilizar
     (pegarlo), existen un total de 26 registros nominales (a-z)
  3. Copiar una palabra complete con el cursor situado en cualquierparte
     dentro de esa palabra mediante:   yiw
  4. Cambiar una palabra completa con el cursor en cualquier parte de esa
     palabra mediante:   ciw
  5. Insertar texto directamente desde los registros en el modo insertar
     mediante el comando:   <CTRL-R>a

  6. Insertar los resultado de una simple operación aritmética
     en el modo insertar mediante: <CTRL-R> seguido por  =60*60<ENTER>
  7. Insertar los resultado de una llamada del sistema en el modo insertar
     mediante: <CTRL-R> seguido por  =system('ls -1')<ENTER>

  8. Inspeccionar el contenido de los registros con   :reg
  9. Aprender el destino final al que va a parar la eliminación de
     una línea complete: dd en los registros numerados.
     Por ejemplo: descendiendo desde el registro 1 al 9. i.e. descending from register 1 - 9.
     Ten en cuenta cómo las eliminaciones completas de las líneas son preservadas en
     los registros numerado y permanecen más que cualquier otra operación realizada
 10. Aprender cual es el destino final de todos los objetos que copiamos
     en los registros numerados y cómo son de efímeros

 11. Ubicar marcas desde el modo de comandos   m[a-zA-Z0-9]
 12. Mover de manera inteligente una línea a una marca con   '

 13. Registros especiales:
     - "+/"*  - Portapapeles del sistema (depende el sistema operativo utilizado)
     - "_     - El agujero negro (descarta texto eliminado/copiado)
     - "=     - Registro de expresión

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Con esto concluye el capítulo dos del Tutor de Vim.
  Este es un trabajo en progreso.

  Este capítulo fue escrito por Paul D. Parker y Christian Brabandt.
  Traducido por Victorhck.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~