{"id":25434,"date":"2020-03-14T04:01:22","date_gmt":"2020-03-14T03:01:22","guid":{"rendered":"https:\/\/eltallerdelbit.com\/?p=25434"},"modified":"2020-08-24T00:13:49","modified_gmt":"2020-08-23T22:13:49","slug":"chuleta-atajos-editor-vi","status":"publish","type":"post","link":"https:\/\/eltallerdelbit.com\/chuleta-atajos-editor-vi\/","title":{"rendered":"El editor Vi | atajos y ejemplos"},"content":{"rendered":"
<\/p>\n
En este art\u00edculo:<\/p>\n
<\/p>\n
<\/p>\n
–> Al modo comando accedemos pulsando la tecla Escape. Tambi\u00e9n es el modo en el que accedemos a los ficheros cuando usamos vi.<\/p>\n –> Al modo de inserci\u00f3n accedemos pulsando la tecla i (insert<\/em>). <\/p>\n Recordemos que si nos encontramos en el modo de inserci\u00f3n, tendremos que pulsar la tecla ESC para salir de inserci\u00f3n e ir al modo COMANDO y as\u00ed poder ejecutar estos comandos: Guardar Guardar y salir Salir, cuando no se han realizado cambios. Salir, forzando que se descarten los cambios realizados. <\/p>\n <\/p>\n Estos atajos permiten insertar texto con el editor vi<\/em><\/strong>; accederemos a ellos desde el modo COMANDO (o sea que antes de ejecutar cualquiera de los siguientes atajos, tenemos que estar en el modo COMANDO, no en el modo de inserci\u00f3n). Para ver c\u00f3mo funcionan estos atajos utilizaremos un fichero de ejemplo, con este contenido:<\/p>\n <\/p>\n Y en todos los ejemplos, nuestra posici\u00f3n original del cursor ser\u00e1 la primera posici\u00f3n de la tercera l\u00ednea:<\/p>\n <\/p>\n <\/p>\n Pasar a modo de inserci\u00f3n. Inserta antes del cursor. Cuando entramos a MODO DE INSERCI\u00d3N, podremos ver que aparece “INSERT<\/em>“<\/li>\n<\/ul>\n <\/p>\n <\/p>\n A\u00f1ade (append <\/em>1 posici\u00f3n) despu\u00e9s de la posici\u00f3n del\u00a0 cursor. Entra en modo de Inserci\u00f3n y se coloca despu\u00e9s de la posici\u00f3n actual del cursor. Comprobamos que partiendo de nuestra posici\u00f3n original, la tercera l\u00ednea, primer car\u00e1cter, pulsamos la letra “a<\/em>“, y vemos que el cursor se mueve 1 posici\u00f3n adelante de donde estaba:<\/li>\n<\/ul>\n <\/p>\n <\/p>\n A\u00f1ade (append <\/em>final de linea) al final de la l\u00ednea donde se encuentre el cursor (Entra en modo de Inserci\u00f3n y se al final de la l\u00ednea actual del cursor).<\/li>\n<\/ul>\n Por ejemplo, teniendo este fichero con este contenido creado, vemos que el cursor est\u00e1 al principio de la tercera l\u00ednea.<\/p>\n Pulsamos “A” (a may\u00fascula) y el cursor se posiciona al fila de la l\u00ednea, y podremos comenzar a escribir:<\/p>\n <\/p>\n <\/p>\n A\u00f1ade una nueva l\u00ednea DESPU\u00c9S de la linea actual.<\/li>\n<\/ul>\n Partiendo del mismo fichero que ten\u00edamos, pulsamos la letra “o” (o min\u00fascula), y vemos que se a\u00f1ade una nueva l\u00ednea despu\u00e9s de la actual:<\/p>\n A\u00f1ade una nueva l\u00ednea ANTES de la linea actual.<\/li>\n<\/ul>\n De nuevo partiendo de la tercera l\u00ednea, en la primera posici\u00f3n, pulsamos la tecla “O” (o may\u00fascula), y vemos que se a\u00f1ade una nueva l\u00ednea ANTES de la l\u00ednea actual. Sobreescribe un caracter. Vemos que se sobreescribe el caracter donde se encontraba el cursor (hemos pulsado la letra “r” para sobreescribir, y luego en este caso hemos sobreescrito con una x):<\/li>\n<\/ul>\n <\/p>\n Sobreescribe (REPLACE<\/em>, reemplaza) muchos caracteres.<\/li>\n<\/ul>\n En este caso el cursor estaba en la primera posici\u00f3n de la tercera l\u00ednea; hemos pulsado la letra R, y hemos comenzado a reemplazar con la letra X. <\/p>\n <\/p>\n Reescribe la l\u00ednea entera desde la posici\u00f3n actual del cursor. Vemos que se reescribe la l\u00ednea entera desde la posici\u00f3n en la que se encontraba el cursor (en este caso al principio de la l\u00ednea):<\/li>\n<\/ul>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Borra el caracter a la derecha del cursor Borra el caracter a la izquierda del cursor Borra el resto de la l\u00ednea Borra la l\u00ednea actual Borra n<\/em> l\u00edneas, comenzando por la actual. Por ejemplo, borrar 3 l\u00edneas ser\u00eda 3dd <\/p>\n <\/p>\n Pega despu\u00e9s de la posici\u00f3n del cursor. Para esto hemos de haber copiado algo antes. Pongamos que hemos copiado 1 l\u00ednea previamente, con 1yy, y luego la pegamos, y vemos que se pega la l\u00ednea entera despu\u00e9s de la posici\u00f3n del cursor:<\/li>\n<\/ul>\n <\/p>\n Pega ANTES de la posici\u00f3n del cursor. Lo mismo que en el ejemplo anterior, pero en este caso vemos que la l\u00ednea se pega en la posici\u00f3n anterior a donde estaba el cursor:<\/li>\n<\/ul>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Nos posicionamos al final del fichero (podemos hacerlo usando la tecla G, como hemos visto anteriormente) y pegamos la l\u00ednea copiada, con <\/p>\n <\/p>\n y vamos a copiar 3 lineas. Pulsamos 3yy<\/p>\n <\/p>\n Despu\u00e9s nos vamos al final del documento con la letra G, y pegamos con “p” las l\u00edneas copiadas:<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n 0 <\/strong> Va al final de la l\u00ednea Va al comienzo del fichero Va al final del fichero Ir a la l\u00ednea n\u00famero “n” del fichero. Por ejemplo, ir a la cuarta l\u00ednea ser\u00eda\u00a0 \u00a0:4 Ir a la parte superior del fichero Ir al final del fichero Ir a la mitad del fichero ir al principio del fichero<\/p>\n <\/p>\n <\/p>\n <\/p>\n izquierda abajo arriba derecha coloca el cursor en la siguiente palabra coloca el cursor al comienzo de la palabra coloca el cursor al final de la palabra <\/p>\n <\/p>\n busca hacia delante la coincidencia con “texto” busca hacia atr\u00e1s la coincidencia con “texto” va al siguiente resultado (buscando hacia delante). Va al resultado anterior (buscando hacia atr\u00e1s). Ignorar las May\u00fasculas o min\u00fasculas mientras realiza la b\u00fasqueda (Case INSENSITIVE) Tiene en cuenta en la b\u00fasqueda las May\u00fasculas y min\u00fasculas (NO Case SENSITIVE, o sea CASE SENSITIVE Busca la cadena de texto, de la l\u00ednea 1 a la 5.<\/p>\n <\/p>\n <\/p>\n <\/p>\n Partiendo de la l\u00ednea tercera, buscamos “fffff”, y vemos que encuentra la \u00faltima l\u00ednea, donde aparece “fffff”:<\/p>\n <\/p>\n <\/p>\n Sin embargo, si nos posicionamos al final del fichero:<\/p>\n <\/p>\n realizamos la b\u00fasqueda hacia delante:<\/p>\n search hit BOTTOM, continuing at TOP<\/em><\/p>\n <\/p>\n es porque est\u00e1 buscando hacia delante.<\/p>\n <\/p>\n <\/p>\n Pero si buscamos “fffff”<\/p>\n search hit TOP, continuing at BOTTOM<\/em><\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Deshacer el \u00faltimo cambio juntar l\u00edneas Repetir el \u00faltimo comando deshacer todos los cambios hechos en la l\u00ednea Accede al modo visual (se marca lo que vamos haciendo) Sale del modo de Inserci\u00f3n<\/p>\n <\/p>\n <\/p>\n <\/p>\n Adem\u00e1s de los comandos b\u00e1sicos para guardar y salir, esta es nuestra lista top de comandos m\u00e1s b\u00e1sicos y \u00fatiles para trabajar con el editor vi:<\/p>\n Borrar l\u00ednea actual Copiar n l\u00edneas pegar despu\u00e9s de la posici\u00f3n del cursor Unir l\u00edneas ir al final del fichero Ir al principio del fichero Ir a la l\u00ednea n del fichero Mostrar los n\u00fameros de l\u00ednea A\u00f1adir una nueva l\u00ednea tras la l\u00ednea actual Deshacer el \u00faltimo cambio Buscar y reemplazar en todo el fichero<\/p>\n <\/p>\n <\/p>\n\n El editor vi es un potente editor con multitud de posibilidades. Conviene conocer algunos trucos y atajos del editor vi en Linux, con varios ejemplos.<\/p>\n","protected":false},"author":1,"featured_media":25543,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false},"categories":[1268],"tags":[1150],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/posts\/25434"}],"collection":[{"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/comments?post=25434"}],"version-history":[{"count":0,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/posts\/25434\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/media\/25543"}],"wp:attachment":[{"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/media?parent=25434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/categories?post=25434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eltallerdelbit.com\/wp-json\/wp\/v2\/tags?post=25434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}
\nAntes de nada, hemos de tener claro que el editor vi ofrece el modo comando<\/strong>, y el modo de inserci\u00f3n<\/strong>.<\/p>\n
\n <\/p>\nControles de vi<\/span><\/h3>\n
\nEstas secuencias de comandos b\u00e1sicos de vi<\/em><\/strong>, para guardar, salir .. etc, los ejecutaremos desde el modo COMANDO.<\/p>\n
\n <\/p>\n:w<\/pre>\n
\n <\/p>\n:x<\/pre>\n
\n <\/p>\n:q<\/pre>\n
\n <\/p>\n:q!<\/pre>\n
\n <\/p>\nInsertando texto<\/span><\/h3>\n
\n <\/p>\naaaaa\r\nbbbbb\r\nccccc\r\nddddd\r\neeeee\r\nfffff\r\n<\/pre>\n
\n
i<\/pre>\n
\n
a<\/pre>\n
\n
A<\/pre>\n
\n <\/p>\n\n
o<\/pre>\n
\n <\/p>\n\n
O<\/pre>\n
\n
\n
\n <\/p>\n\n
r<\/pre>\n
\n <\/p>\n\n
R<\/pre>\n
\nEsta opci\u00f3n nos permite reemplazar m\u00e1s de un caracter. Pulsamos la letra R (r may\u00fascula) y vemos que aparece el texto “REPLACE<\/em>“, y podemos comenzar a reemplazar caracteres:
\n <\/p>\n
\n <\/p>\n
\n <\/p>\n\n
C<\/pre>\n
Borrar texto en el editor vi<\/span><\/h3>\n
x<\/pre>\n
\n <\/p>\nX<\/pre>\n
\n <\/p>\nD<\/pre>\n
\n <\/p>\ndd<\/pre>\n
\n <\/p>\nndd<\/pre>\n
\n <\/p>\nPEGAR texto en vi<\/span><\/h3>\n
\n
p<\/pre>\n
\n<\/p>\n\n
P<\/pre>\n
\n<\/p>\nCOPIAR L\u00cdNEAS<\/span><\/h3>\n
\nVi permite copiar el n\u00famero de l\u00edneas que le digamos, usando “yy” en modo COMANDO.<\/p>\nyy<\/pre>\n
Copiar 1 l\u00ednea<\/span><\/h4>\n
\nAs\u00ed, volvemos a nuestro fichero, en la tercera l\u00ednea:<\/p>\n
\n
\nY vamos a copiar 1 l\u00ednea con :1yy<\/p>\n1yy<\/pre>\n
p<\/pre>\n
\n
\n <\/p>\nCopiar m\u00e1s de 1 l\u00ednea<\/span><\/h4>\n
\nNos colocamos de nuevo en la tercera linea:
\n
\n
\n <\/p>\n3yy<\/pre>\n
Navegaci\u00f3n con el cursor<\/span><\/h3>\n
\nAdem\u00e1s de las flechas de posici\u00f3n del teclado, disponemos de las teclas h, j, k, l , para mover el cursor a la izquierda, abajo, arriba y derecha respectivamente.<\/p>\nAtajos m\u00e1s \u00fatiles para navegaci\u00f3n con el cursor en ficheros<\/span><\/h4>\n
\nVa al comienzo de la l\u00ednea
\n <\/p>\n$<\/pre>\n
\n <\/p>\n1G<\/pre>\n
\n <\/p>\nG<\/pre>\n
\n <\/p>\n:n<\/pre>\n
\n <\/p>\nH<\/pre>\n
\n <\/p>\nL<\/pre>\n
\n <\/p>\nM<\/pre>\n
\n <\/p>\ngg<\/pre>\n
Otros atajos para navegaci\u00f3n en ficheros<\/span><\/h4>\n
h o flecha izquierda<\/pre>\n
\n <\/p>\nj o flecha abajo<\/pre>\n
\n <\/p>\nk o flecha arriba<\/pre>\n
\n <\/p>\nl o flecha derecha<\/pre>\n
\n <\/p>\nw<\/pre>\n
\n <\/p>\nb<\/pre>\n
\n <\/p>\ne<\/pre>\n
\n <\/p>\nBUSCAR con vi<\/span><\/h3>\n
\/texto<\/pre>\n
\n <\/p>\n?texto<\/pre>\n
\n <\/p>\nn<\/pre>\n
\n <\/p>\nN<\/pre>\n
\n <\/p>\n:set ic<\/pre>\n
\n <\/p>\n:set noic<\/pre>\n
\n <\/p>\n:1,5g\/cadena<\/pre>\n
Ejemplos de b\u00fasqueda<\/span><\/h4>\n
\n
\/fffff<\/pre>\n
\ny vemos que aparece el mensaje : <\/p>\n\n
?aaaaa<\/pre>\n
\n<\/p>\n?fffff<\/pre>\n
\nMostrar\u00e1 el mensaje inverso:<\/p>\nBuscar y reemplazar texto<\/span><\/h3>\n
\n
:s\/buscar\/reemplazar\/<\/pre>\n
\n
:s\/buscar\/reemplazar\/g<\/pre>\n
\n
:%s\/buscar\/reemplazar\/<\/pre>\n
\n
:%s\/buscar\/reemplazar\/g<\/pre>\n
Otros atajos en vi<\/span><\/h3>\n
u<\/pre>\n
\n <\/p>\nJ<\/pre>\n
\n <\/p>\n.<\/pre>\n
\n <\/p>\nU<\/pre>\n
\n <\/p>\nv<\/pre>\n
\n <\/p>\nCtrl + c<\/pre>\n
Resumen de los mejores atajos de vi<\/span><\/h3>\n
dd<\/pre>\n
\n <\/p>\nnyy<\/pre>\n
\n <\/p>\np<\/pre>\n
\n <\/p>\nJ<\/pre>\n
\n <\/p>\nG<\/pre>\n
\n <\/p>\n1G<\/pre>\n
\n <\/p>\n:n<\/pre>\n
\n <\/p>\n:set number<\/pre>\n
\n <\/p>\no<\/pre>\n
\n <\/p>\nu<\/pre>\n
\n <\/p>\n:%s\/buscar\/reemplazar\/g<\/pre>\n