├── LICENSE
└── README.md
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 FrontEnd Labs
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vim key combinations
2 |
3 | One of the most pleasant aspects of **Vim** is how **keyboard shortcuts** can be **combined**. In this
4 | repository we will describe some of those combinations.
5 |
6 | Uno de los aspectos más agradables de **Vim** es como sus **atajos de teclado** se pueden **combinar**. En
7 | este repositorio describiremos algunas de esas combinaciones.
8 |
9 | > **Note:**
10 | > If you know any other **key combination**, please do not hesitate to make a **pull-request**.
11 |
12 | > **Nota:**
13 | > Si conoces alguna otra **combinación**, por favor no dudes en hacer un **pull-request**.
14 |
15 | ----------
16 |
17 | ## Movimiento del cursor (Desplazamiento)
18 |
19 | ### Saltar hacia el inicio de una línea
20 |
21 | **Tecla:** 0.
22 |
23 | **Ejemplo:**
24 |
25 | Si tuviéramos el siguiente código y tenemos el cursor en cualquier posición:
26 |
27 | ```js
28 | var order = 'ASC';
29 | ```
30 |
31 | Y luego presionamos la tecla 0 el cursor se desplazará hacía el inicio de la línea, osea el cursor se pondrá delante de la letra var.
32 |
33 |
34 | ### Modo Normal o Modo Navegación
35 |
36 | Este modo de vim es el que te permitirá navegar por todo el documento de una forma increíble. A este modo se accede presionando la tecla Esc.
37 |
38 | En la siguente tabla mostramos la navegacion básica en vim:
39 |
40 | | Tecla | Acción |
41 | | :-------- | :----------------------------------- |
42 | | k | mueve el cursor hacia una línea superior. |
43 | | j | mueve el cursor hacia una línea inferior. |
44 | | h | mueve el cursor hacia un caracter a la izquierda |
45 | | l | mueve el cursor hacia un caracter a la derecha |
46 |
47 |
48 |
49 |
50 | ### Modo Insertar
51 |
52 | **Tecla:** i.
53 |
54 | **Ejemplo:**
55 |
56 | Si tuviéramos el siguiente código y posicionamos el cursor delante del caracter S:
57 |
58 | ```js
59 | var order = 'SC';
60 | ```
61 |
62 | Y luego presionamos la tecla i pasamos a modo inserción, luego escribimos por ejemplo la letra A, tendríamos:
63 |
64 | ```js
65 | var order = 'ASC';
66 | ```
67 |
68 | **Tecla:** a.
69 |
70 | **Ejemplo:**
71 |
72 | Si tuviéramos el siguiente código y posicionamos el cursor delante del caracter D:
73 |
74 | ```js
75 | var order = 'DSC';
76 | ```
77 |
78 | Y luego presionamos la tecla a pasamos a modo insersión, luego escribimos por ejemplo la letra E, tendríamos:
79 |
80 | ```js
81 | var order = 'DESC';
82 | ```
83 |
84 | ----------
85 |
86 | ## 1 key
87 |
88 |
89 | ### Deshacer el último cambio
90 |
91 | **Tecla:** u.
92 |
93 | ### Ir hasta la última línea de código de un archivo
94 |
95 | **Tecla:** G.
96 |
97 | **Ejemplo:**
98 |
99 | Si tuviéramos el siguiente código:
100 |
101 | ```js
102 | /*
103 | GulpCssUrlVersioner
104 | @class GulpCssUrlVersioner
105 | */
106 |
107 | /*
108 | * Module dependencies.
109 | */
110 | var Buffer, CssUrlVersioner, GulpCssUrlVersioner, chalk, extend, through, util;
111 |
112 | util = require('util');
113 | through = require('through2');
114 | chalk = require('chalk');
115 | Buffer = require('buffer').Buffer;
116 | extend = util._extend;
117 | CssUrlVersioner = require('css-url-versioner');
118 |
119 | /*
120 | * Library.
121 | */
122 | GulpCssUrlVersioner = function(opts) {
123 | this.data = {};
124 | this.settings = opts || {
125 | debug: false
126 | };
127 | this.css = '';
128 | this.transform();
129 | return this.stream;
130 | };
131 | ```
132 |
133 | Y tuviéramos el cursor posicionado en cualquier línea, al presionar la tecla G, el cursor se posicionaría en el último caracter de la última línea de código de nuestro archivo.
134 |
135 | ----------
136 |
137 | ## 2 keys
138 |
139 | ### Rehacer el último cambio
140 |
141 | **Tecla:** Ctrl + R.
142 |
143 | ### Comentar un bloque de líneas
144 |
145 | Para aplicar este combo primero entrar al modo bloque visual.
146 |
147 | **Combo:** shift + i.
148 |
149 | **Ejemplo:**
150 |
151 | Si tuviéramos el siguiente código:
152 |
153 | ```js
154 | var a = 'SFSSD';
155 | var b = 'SFSFSDFS';
156 | var c = 'SFDSFDSFDSF';
157 | ```
158 | Si situamos el cursor en la palabra reservada var, luego entrar al modo bloque visual, luego moverte hasta la linea que deseas comentar, en este caso sera var de la tercera linea , siempre posicionando en el primer caracter de la linea, luego aplicamos shift + i , luego // para comentar, luego ESC y listo.
159 |
160 | ```js
161 | var a = 'SFSSD';
162 | var b = 'SFSFSDFS';
163 | var c = 'SFDSFDSFDSF';
164 | ```
165 |
166 | Obtendremos :
167 |
168 | ```js
169 | //var a = 'SFSSD';
170 | //var b = 'SFSFSDFS';
171 | //var c = 'SFDSFDSFDSF';
172 | ```
173 |
174 | ### Cambiar de posición un caracter con el caracter siguiente
175 |
176 | **Combo:** x + p.
177 |
178 | **Ejemplo:**
179 |
180 | Si tuviéramos el siguiente código:
181 |
182 | ```js
183 | var roder = 'ASC';
184 | ```
185 |
186 | Si situamos el cursor delante del caracter r al aplicar el combo xp, obtendríamos lo siguiente:
187 |
188 | ```js
189 | var order = 'ASC';
190 | ```
191 |
192 |
193 | ### Eliminar una línea de código entera
194 |
195 | **Combo:** d + d.
196 |
197 | **Ejemplo:**
198 |
199 | Si tuviéramos el siguiente código:
200 |
201 | ```css
202 | p
203 | margin 0
204 | color white
205 | ```
206 |
207 | Si situamos el cursor sobre margin 0 al aplicar el combo dd, obtendríamos lo siguiente:
208 |
209 | ```css
210 | p
211 | color white
212 | ```
213 |
214 | ### Borrar resto de palabra desde un punto específico
215 |
216 | **Combo:** d + e.
217 |
218 | **Ejemplo:**
219 |
220 | Si tuviéramos el siguiente código:
221 |
222 | ```css
223 | box-sizingabc: border-box
224 | ```
225 |
226 | Si situamos el cursor en el caracter a al aplicar el combo de, obtendríamos lo siguiente:
227 |
228 | ```css
229 | box-sizing: border-box
230 | ```
231 |
232 | ### Borrar resto de línea desde un punto específico
233 |
234 | **Combo:** d + $.
235 |
236 | **Ejemplo:**
237 |
238 | Si tuviéramos el siguiente código:
239 |
240 | ```css
241 | border 1px 2px 3px 4px
242 | ```
243 |
244 | Si situamos el cursor detrás de la palabra 2px al aplicar el combo d$, obtendríamos lo siguiente:
245 |
246 | ```css
247 | border 1px 2px
248 | ```
249 |
250 | ### Borrar todas las líneas hacia abajo desde el cursor
251 |
252 | **Combo:** d + G.
253 |
254 | **Ejemplo:**
255 |
256 | Si tuviéramos el siguiente código:
257 |
258 | ```css
259 | .footer_note
260 | background black
261 | padding 30px
262 |
263 | p
264 | color #cccccc
265 | margin 0
266 |
267 | ```
268 |
269 | Si situamos el cursor en la palabra padding al aplicar el combo dG, obtendríamos lo siguiente:
270 |
271 | ```css
272 | .footer_note
273 | background black
274 |
275 | ```
276 |
277 |
278 |
279 | ### Ir hasta la primera línea de código de un archivo
280 |
281 | **Combo:** g + g.
282 |
283 | **Ejemplo:**
284 |
285 | Si tuviéramos el siguiente código:
286 |
287 | ```js
288 | /*
289 | GulpCssUrlVersioner
290 | @class GulpCssUrlVersioner
291 | */
292 |
293 | /*
294 | * Module dependencies.
295 | */
296 | var Buffer, CssUrlVersioner, GulpCssUrlVersioner, chalk, extend, through, util;
297 |
298 | util = require('util');
299 | through = require('through2');
300 | chalk = require('chalk');
301 | Buffer = require('buffer').Buffer;
302 | extend = util._extend;
303 | CssUrlVersioner = require('css-url-versioner');
304 |
305 | /*
306 | * Library.
307 | */
308 | GulpCssUrlVersioner = function(opts) {
309 | this.data = {};
310 | this.settings = opts || {
311 | debug: false
312 | };
313 | this.css = '';
314 | this.transform();
315 | return this.stream;
316 | };
317 | ```
318 |
319 | y tuviéramos el cursor posicionado en cualquier línea, al aplicar el combo gg, el cursor se posicionaría delante del primer caracter de la primera línea de codigo de nuestro archivo.
320 |
321 | ### Navegar entre palabras
322 |
323 | Avanzar una palabra
324 |
325 | **Tecla** w.
326 |
327 | Retroceder una palabra
328 |
329 | **Tecla** b.
330 |
331 | ### Resaltar la última selección hecha
332 |
333 | **Combo:** g + v.
334 |
335 | **Ejemplo:**
336 |
337 | Si hubieramos realizado una selección y seguido a ello diferentes acciones, podemos volver a resaltar la última selección hecha mediante el combo g + v.
338 |
339 |
340 | ----------
341 |
342 | ## 3 keys
343 |
344 | ### Intercambiar la posición con la línea inferior
345 |
346 | **Combo:** d + d + p.
347 |
348 | **Ejemplo:**
349 |
350 | Si tuviéramos el siguiente código:
351 |
352 | ```css
353 | p
354 | margin 0
355 | color white
356 | ```
357 |
358 | Si situamos el cursor sobre margin 0 al aplicar el combo ddp, obtendríamos lo siguiente:
359 |
360 | ```css
361 | p
362 | color white
363 | margin 0
364 | ```
365 |
366 | ### Eliminar un grupo de caracteres (alfanumericas,caracteres especiales).
367 |
368 | **Combo:** c + a + w.
369 |
370 | **Ejemplo:**
371 |
372 | Si tuviéramos el siguiente código:
373 |
374 | ```css
375 | h1
376 | color red
377 | ```
378 |
379 | Si situamos el cursor sobre el atributo color, y ejecutamos el combo en modo normal, obtendríamos lo siguiente:
380 | ```css
381 | h1
382 | red
383 | ```
384 |
385 | ### Borrar palabra desde cualquier punto
386 |
387 | **Combo:** b + d + e.
388 |
389 | **Ejemplo:**
390 |
391 | Si tuviéramos el siguiente código:
392 |
393 | ```js
394 | array.push('var1')
395 | ```
396 |
397 | Si situamos el cursor en cualquier posición dentro de la palabra(excepto el primer caracter) var1 al aplicar el combo bde, obtendríamos lo siguiente:
398 |
399 | ```js
400 | array.push('')
401 | ```
402 |
403 | ### Copiar y pegar una linea debajo de linea actual
404 |
405 | **Combo:** y + y + p.
406 |
407 | **Ejemplo:**
408 |
409 | Si tuviéramos el siguiente código:
410 |
411 | ```js
412 | var a = "Test";
413 | ```
414 |
415 | Si situamos el cursor en cualquier posición de la linea, al aplicar el combo yyp, obtendríamos lo siguiente:
416 |
417 | ```js
418 | var a = "Test";
419 | var a = "Test";
420 | ```
421 |
422 | ----------
423 |
424 |
425 | ## Edición
426 |
427 | ### Reemplazar una línea entera
428 |
429 | **Combo:** c + c.
430 |
431 | **Ejemplo:**
432 |
433 | Si tuviéramos el siguiente código:
434 |
435 | ```css
436 | p
437 | color white
438 | margin 0
439 | ```
440 |
441 | Si situamos el cursor sobre margin 0 al aplicar el combo cc, obtendríamos lo siguiente:
442 |
443 | ```css
444 | p
445 | color white
446 |
447 | ```
448 |
449 | Y por ultimo escribiremos padding 0, obtendríamos lo siguiente:
450 |
451 | ```css
452 | p
453 | color white
454 | padding 0
455 | ```
456 |
457 | Como podemos ver, al ejecutar el combo cc no se pierde la tabulación.
458 |
459 |
460 |
461 | ----------
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 | ## Ventanas
487 |
488 | ### Dividir la ventana verticalmente
489 |
490 | **Combo:** ctrl + w + v.
491 |
492 |
493 | ### Dividir la ventana horizontalmente
494 |
495 | **Combo:** ctrl + w + s.
496 |
497 | ### Navegar entre ventanas divididas
498 |
499 | **Combo:** ctrl + w.
500 |
501 |
502 | ### Cerrar una ventana dividida
503 |
504 | **Combo:** ctrl + w + q.
505 |
506 |
507 | ----------
508 |
--------------------------------------------------------------------------------