├── 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 | --------------------------------------------------------------------------------