{"id":82,"date":"2013-02-25T22:13:03","date_gmt":"2013-02-25T22:13:03","guid":{"rendered":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/?p=82"},"modified":"2013-02-26T22:20:11","modified_gmt":"2013-02-26T22:20:11","slug":"vi-vim","status":"publish","type":"post","link":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/vi-vim\/","title":{"rendered":"vi \/ vim"},"content":{"rendered":"<p>Linux proporciona una amplia variedad de aplicaciones de edici\u00f3n de texto de muy diversos tipos y diferentes niveles de prestaciones, de forma que es una cuesti\u00f3n de gustos o necesidades m\u00e1s o menos avanzadas elegir entre una u otra. La raz\u00f3n para conocer el editor vi es que se encuentra virtualmente en todas las distribuciones de Linux y funciona en modo texto. As\u00ed, aunque podamos preferir un editor de otro tipo en el uso diario, puede haber ciertas ocasiones en las que resulte \u00fatil saber utilizarlo al menos a nivel b\u00e1sico, como por ejemplo situaciones en las que no es posible acceder al entorno gr\u00e1fico o en accesos remotos al sistema con disponibilidad limitada de aplicaciones.<\/p>\n<h3>Arrancando vi<\/h3>\n<p>Para arrancar vi simplemente hemos de escribir el comando desde un terminal. Si le proporcionamos un nombre de fichero como par\u00e1metro, abrir\u00e1 dicho fichero, si no, abrir\u00e1 uno nuevo. Entremos, por ejemplo<\/p>\n<pre>$ vi prueba.txt<\/pre>\n<p>Se abrir\u00e1 el programa, que ocupa toda la pantalla, sit\u00faa el cursor arriba a la izquierda y llena la mayor parte de l\u00edneas con el car\u00e1cter &#8216;~&#8217; indicando que no contienen texto. En la parte inferior se encuentra el \u00e1rea de estado y de comandos que, en este momento, indica que hemos abierto un fichero nuevo llamado\u00a0<em>prueba.txt<\/em>.<\/p>\n<p>El editor ofrece dos modos de funcionamiento, el modo de edici\u00f3n y el modo comando. El primero es el que permite realizar todas las tareas posibles de edici\u00f3n, es decir, inserci\u00f3n, modificaci\u00f3n o eliminaci\u00f3n y considera cada tecla como texto a incluir. El segundo, en cambio, interpreta lo que tecleamos como parte de un comando y no lo incluye en el texto sino que lleva a cabo una acci\u00f3n (por ejemplo, guardar el fichero).<\/p>\n<h3>Mi primer texto<\/h3>\n<p>Al arrancar,\u00a0<em>vi<\/em>\u00a0se encuentra en modo comando, por lo que habr\u00e1 que proporcionarle alguno para pasar al modo de edici\u00f3n, como por ejemplo <em>insert<\/em>. Para ello pulsamos una <em>i<\/em> y a partir de ese instante el texto que entramos se incluye en el fichero.\u00a0 Puedes observar como la l\u00ednea de estado de <em>vi<\/em> indica que estamos en modo de inserci\u00f3n (&#8216;&#8211;INSERT&#8211;&#8216;). Mientras editamos podemos movernos a trav\u00e9s del texto con las flechas del teclado e insertar nuevas l\u00edneas con la tecla <em>intro<\/em>. Introduce el texto &#8216;Al principio cuesta un poco acostumbrarse a vi, pero puede llegar a ser un editor muy potente.&#8217;.<\/p>\n<p>Una vez hemos entrado el texto, tendremos que grabarlo mediante el comando correspondiente. Para pasar al modo comando utilizaremos la tecla <em>ESC<\/em>. Al pulsarla, vemos como cambia la l\u00ednea de estado dejando de indicar el modo anterior. Ahora podemos introducir un comando. Concretamente, para guardar los cambios en el fichero utilizaremos &#8216;<em>w<\/em>&#8216;. La l\u00ednea de estado indicar\u00e1 que el texto se ha grabado correctamente:<\/p>\n<p><a href=\"http:\/\/multimedia.uoc.edu\/blogs\/linux\/files\/2013\/02\/vi01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88\" alt=\"vi01\" src=\"http:\/\/multimedia.uoc.edu\/blogs\/linux\/files\/2013\/02\/vi01.png\" width=\"318\" height=\"49\" srcset=\"http:\/\/multimedia.uoc.edu\/blogs\/linux\/files\/2013\/02\/vi01.png 318w, http:\/\/multimedia.uoc.edu\/blogs\/linux\/files\/2013\/02\/vi01-300x46.png 300w\" sizes=\"auto, (max-width: 318px) 100vw, 318px\" \/><\/a><\/p>\n<p>Para salir utilizaremos el comando &#8216;<em>q<\/em>&#8216;, que nos devolver\u00e1 a la l\u00ednea de comandos del terminal. Otros comandos \u00fatiles son los siguientes:<\/p>\n<ul>\n<li>&#8216;<em>q!<\/em>&#8216; para salir sin guardar los \u00faltimos cambios.<\/li>\n<li>&#8216;<em>wq<\/em>&#8216; para guardar los cambios y salir.<\/li>\n<li>&#8216;<em>r<\/em>&#8216; seguido del nombre de un fichero para insertar el contenido de otro fichero.<\/li>\n<\/ul>\n<p style=\"padding-left: 30px;\">Al principio es normal que a veces no sepamos en que modo estamos e intentemos editar cuando estamos en modo comando sin resultados. Si no estamos seguros, lo m\u00e1s conveniente es pulsar ESC para estar seguro de pasar a modo comando y as\u00ed entrar f\u00e1cilmente al modo de edici\u00f3n.<\/p>\n<h3>Modificaci\u00f3n de texto<\/h3>\n<p>Aunque versiones modernas de <em>vi<\/em> permiten eliminar texto utilizando las teclas de borrado habituales, podemos encontrarnos en situaciones donde la terminal no est\u00e9 configurada para ello. En estos casos, es \u00fatil conocer algunos comandos que realizan estas funciones.<\/p>\n<p>Vamos a volver a editar el texto anterior entrando el comando <em>&#8216;vi prueba.txt<\/em>&#8216;. Ahora realizaremos los siguientes pasos para ver un ejemplo de uso de comandos para la eliminaci\u00f3n de texto:<\/p>\n<ol>\n<li>Introduce el comando &#8216;<em>i<\/em>&#8216; para entrar en modo de edici\u00f3n.<\/li>\n<li>Sit\u00faate sobre la letra &#8216;u&#8217; de &#8216;un poco&#8217; y pulsa la tecla <em>ESC<\/em> para pasar a modo comando.<\/li>\n<li>Pulsa &#8216;<em>x<\/em>&#8216; varias veces hasta borrar &#8216;un poco&#8217;. Ver\u00e1s como se van eliminando caracteres hacia la derecha.<\/li>\n<li>Entra &#8216;<em>A<\/em>&#8216; para colocarte en modo de edici\u00f3n al final de la l\u00ednea.<\/li>\n<li>Pulsa la tecla <em>intro<\/em> para pasar a una l\u00ednea nueva e introduce el texto &#8216;Esta l\u00ednea no sirve&#8217;.<\/li>\n<li>Vuelve a pulsar <em>ESC<\/em> para pasar al modo comando y entra &#8216;<em>dd<\/em>&#8216; para borrar la l\u00ednea completa.<\/li>\n<\/ol>\n<p>Igualmente, aunque para desplazarnos podemos utilizar las flechas del teclado, si ello no fuera posible disponemos tambi\u00e9n de los siguientes comandos:<\/p>\n<table width=\"370\">\n<tbody>\n<tr>\n<td align=\"left\" width=\"35\">&#8216;j&#8217;<\/td>\n<td align=\"left\" width=\"274\">mover el cursor hacia abajo.<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" width=\"35\">&#8216;k&#8217;<\/td>\n<td align=\"left\" width=\"274\">mover el cursor hacia arriba.<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" width=\"35\">&#8216;h&#8217;<\/td>\n<td align=\"left\" width=\"274\">mover el cursor hacia la izquierda<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" width=\"35\">&#8216;l&#8217;<\/td>\n<td align=\"left\" width=\"274\">mover el cursor hacia la derecha<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"padding-left: 30px;\">Si quieres repetir el \u00faltimo comando puedes entrar simplemente un punto &#8216;.&#8217; y se volver\u00e1 a ejecutar. Si en cambio, quieres deshacerlo puedes usar el comando &#8216;u&#8217;.<\/p>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Linux proporciona una amplia variedad de aplicaciones de edici\u00f3n de texto de muy diversos tipos y diferentes niveles de prestaciones, de forma que es una cuesti\u00f3n de gustos o necesidades m\u00e1s o menos avanzadas elegir entre una u otra. La raz\u00f3n para conocer el editor vi es que se encuentra virtualmente en todas las distribuciones &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/multimedia.uoc.edu\/blogs\/linux\/vi-vim\/\" class=\"more-link\">Seguir leyendo<span class=\"screen-reader-text\"> \u00abvi \/ vim\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-82","post","type-post","status-publish","format-standard","hentry","category-gnulinux","entry"],"_links":{"self":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/82","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/comments?post=82"}],"version-history":[{"count":3,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/82\/revisions"}],"predecessor-version":[{"id":91,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/82\/revisions\/91"}],"wp:attachment":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/media?parent=82"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/categories?post=82"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/tags?post=82"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}