{"id":652,"date":"2023-10-18T11:20:06","date_gmt":"2023-10-18T09:20:06","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/?page_id=652"},"modified":"2025-04-25T11:50:29","modified_gmt":"2025-04-25T09:50:29","slug":"1-9-2-edicio-darxius-amb-leditor-vim","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/1-9-2-edicio-darxius-amb-leditor-vim\/","title":{"rendered":"1.9.2. Edici\u00f3 d\u2019arxius amb l\u2019editor <em>vim<\/em>"},"content":{"rendered":"<p><em>Vim<\/em>, tamb\u00e9 conegut com <em>a Vi Improved<\/em>, \u00e9s un editor programable altament potent i vers\u00e0til que es troba present en tots els sistemes GNU\/Linux. Una de les seves principals caracter\u00edstiques \u00e9s que disposa de diferents modes (normal, visual, <em>insert<\/em>, <em>command-line, select<\/em> i <em>ex<\/em>), que s\u2019alternen per dur a terme diferents operacions. Aquesta particularitat el diferencia de la majoria dels editors comuns, que solen tenir una \u00fanica opci\u00f3 (<em>insert<\/em>) on s\u2019introdueixen les ordres mitjan\u00e7ant combinacions de tecles o interf\u00edcies gr\u00e0fiques.<\/p>\n<p>La totalitat del control de <em>vim<\/em> es realitza a trav\u00e9s del teclat des d\u2019un terminal, cosa que el fa ideal per ser utilitzat sense problemes a trav\u00e9s de connexions remotes, ja que no desplegar un entorn gr\u00e0fic perqu\u00e8 no carrega el sistema. Aprendre a utilitzar <em>vim<\/em> \u00e9s altament recomanable per la seva capacitat per augmentar la productivitat i l\u2019efici\u00e8ncia en la programaci\u00f3.<\/p>\n<p>En aquest apartat us expliquem dues modalitats de <em>vim<\/em>: mode d\u2019inserci\u00f3 (o entrada) i mode d\u2019edici\u00f3. En el mode d\u2019inserci\u00f3, es pot introduir o ingressar contingut a l\u2019arxiu. En el mode d\u2019edici\u00f3, ens podem moure per l\u2019arxiu, realitzar accions com eliminar, copiar, buscar i reempla\u00e7ar, guardar, etc. Un error com\u00fa \u00e9s comen\u00e7ar a ingressar ordres sense tornar primer al mode d\u2019edici\u00f3 o comen\u00e7ar a escriure una entrada sense entrar primer en el mode d\u2019inserci\u00f3. Si feu qualsevol d\u2019aquestes coses, generalment ser\u00e0 f\u00e0cil recuperar, aix\u00ed que no us preocupeu, despr\u00e9s us ho explicarem.<\/p>\n<p>Comencem! Ser\u00e0 dif\u00edcil demostrar-vos tot el proc\u00e9s en la seva major part, aix\u00ed que, en lloc vostre, citarem el que cal escriure i haureu d\u2019intentar-ho, a veure com us va.<\/p>\n<p>Primer, genereu un nou directori, perqu\u00e8 es crearan alguns arxius i aix\u00f2 els mantindr\u00e0 fora del vostre material normal. Ara editarem el nostre primer arxiu.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ vi primer-fitxer<\/pre>\n<p>Quan executes aquesta ordre, s\u2019obre l\u2019arxiu. Si l\u2019arxiu no existeix, el crear\u00e0 per a nosaltres i despr\u00e9s l\u2019obrir\u00e0 (no cal que executeu <em>touch<\/em> <i>arxiu<\/i> abans d\u2019editar-lo). Un cop ingressem a <em>vim<\/em>, es veur\u00e0 alguna cosa similar a la figura 3 (tot i que, depenent del sistema en qu\u00e8 us trobeu, es pot veure lleugerament diferent).<\/p>\n<figure id=\"attachment_100\" aria-describedby=\"caption-attachment-100\" style=\"width: 723px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-100 size-full\" src=\"\/wp-content\/uploads\/sites\/5\/2023\/08\/image003.png\" alt=\"\" width=\"723\" height=\"469\" srcset=\"\/wp-content\/uploads\/sites\/5\/2023\/08\/image003.png 723w, \/wp-content\/uploads\/sites\/5\/2023\/08\/image003-300x195.png 300w\" sizes=\"(max-width: 723px) 100vw, 723px\" \/><figcaption id=\"caption-attachment-100\" class=\"wp-caption-text\">Figura 3. Imatge obtinguda en executar l\u2019ordre <em>vi <\/em>primer-fitxer.<\/figcaption><\/figure>\n<p>Sempre comen\u00e7arem en mode d\u2019edici\u00f3, de manera que el primer que farem \u00e9s passar al mode d\u2019inserci\u00f3 pressionant la lletra <em>i<\/em>. Podeu saber quan esteu en mode d\u2019inserci\u00f3, perqu\u00e8 ho veureu indicat a la cantonada inferior esquerra. Ara escriviu algunes l\u00ednies de text i pressioneu <em>Esc<\/em>, cosa que et portar\u00e0 de tornada al mode d\u2019edici\u00f3.<\/p>\n<p><strong><em>Save<\/em> i\u00a0<em>existing<\/em><\/strong><\/p>\n<p>Hi ha algunes formes de fer-ho. Totes fan essencialment el mateix, aix\u00ed que tria la que prefereixis. En qualsevol cas, assegura\u2019t d\u2019estar primer en mode d\u2019edici\u00f3.<\/p>\n<p><code>:ZZ<\/code> (Nota: en maj\u00fascules). Guardar i sortir.<\/p>\n<p><code>:q!<\/code> Descartar tots els canvis des de l\u2019\u00faltim guardar i sortir.<\/p>\n<p><code>:w<\/code> Guardar l\u2019arxiu per\u00f2 no sortir.<\/p>\n<p><code>:wq<\/code> Novament, guardar i sortir.<\/p>\n<p>La majoria de les ordres dins de <em>vi<\/em> s\u2019executen tan bon punt pressionem una seq\u00fc\u00e8ncia de tecles. Qualsevol ordre que comenci amb dos punts (:) requereix que pressionem &lt;enter&gt; per completar-la. Guardeu i salveu l\u2019arxiu que teniu actualment obert.<\/p>\n<p>L\u2019editor<em> vi<\/em> permet editar arxius. Si volgu\u00e9ssim, tamb\u00e9 podr\u00edem fer-lo servir per veure arxius, per\u00f2 hi ha altres ordres que s\u00f3n una mica m\u00e9s convenients per a aquest prop\u00f2sit. Provem <em>cat<\/em>, que en realitat significa <em>concatenar<\/em> i t\u00e9 com a objectiu principal unir arxius, per\u00f2 que en la seva forma m\u00e9s b\u00e0sica \u00e9s \u00fatil per, simplement, veure arxius, com ja s\u2019ha vist.<\/p>\n<p><strong>Navegant en un fitxer <em>vi<\/em><\/strong><\/p>\n<p>Ara tornem a l\u2019arxiu que acabem de crear i afegim-hi m\u00e9s contingut. En el mode d\u2019inserci\u00f3, podem fer servir les tecles de fletxa per moure el cursor. Afegiu dos par\u00e0grafs m\u00e9s de contingut i despr\u00e9s pressioneu <em>Esc<\/em> per tornar al mode d\u2019edici\u00f3.<\/p>\n<p>A continuaci\u00f3, es mostren algunes de les moltes ordres que podem utilitzar per moure\u2019ns per l\u2019arxiu. Jugueu-hi i observeu com funcionen.<\/p>\n<ul>\n<li>Tecles de fletxa: mou el cursor per l\u2019arxiu.<\/li>\n<li><em>j<\/em>, <em>k<\/em>, <em>h<\/em>, <em>l<\/em>: mou el cursor cap avall, amunt, esquerra i dreta (similar a les tecles de fletxa).<\/li>\n<li><code>^<\/code> (accent circumflex): mou el cursor al principi de la l\u00ednia actual.<\/li>\n<li><code>$<\/code> : mou el cursor al final de la l\u00ednia actual.<\/li>\n<li><code>nG<\/code>: mou el cursor fins a la <em>n<\/em>-ena l\u00ednia (per exemple,<em> 5G<\/em> es mou a la cinquena l\u00ednia).<\/li>\n<li><code>G<\/code>: mou el cursor fins a l\u2019\u00faltima l\u00ednia.<\/li>\n<li><code>w<\/code>: mou el cursor al principi de la seg\u00fcent paraula.<\/li>\n<li><code>nw<\/code>: mou el cursor <em>n<\/em> paraules cap endavant (per exemple, <em>2w<\/em> el mou dues paraules cap endavant).<\/li>\n<li><code>b<\/code>: mou el cursor al principi de la paraula anterior.<\/li>\n<li><code>nb<\/code>: mou el cursor cap enrere <em>n<\/em><\/li>\n<li><code>{<\/code> : mou un par\u00e0graf cap enrere, }: mou un par\u00e0graf cap endavant.<\/li>\n<\/ul>\n<p>Si escriviu :<code>set nu<\/code> en el mode d\u2019edici\u00f3 dins de <em>vi<\/em>, s\u2019habilitaran els n\u00fameros de l\u00ednia. Descobrireu que \u00e9s una manera molt m\u00e9s senzilla de treballar amb arxius.<\/p>\n<p><strong>Eliminant contingut<\/strong><\/p>\n<p>Acabem de veure que, si volem moure\u2019ns dins de <em>vi<\/em>, hi ha moltes opcions disponibles. Diverses d\u2019elles tamb\u00e9 ens permeten precedir-les amb un n\u00famero per moure\u2019ns la mateixa quantitat de vegades. Eliminar i despla\u00e7ar-se serveixen, de fet, de manera similar: diverses ordres d\u2019eliminaci\u00f3 ens permeten incorporar una ordre de moviment per definir el que s\u2019eliminar\u00e0. A continuaci\u00f3, es mostren algunes de les moltes formes com podem eliminar contingut dins de <em>vi<\/em>. Jugueu amb elles ara (consulteu tamb\u00e9 la secci\u00f3 seg\u00fcent sobre com desfer per poder tirar enrere les vostres eliminacions).<\/p>\n<ul>\n<li><code>x<\/code>: elimina un sol car\u00e0cter.<\/li>\n<li><code>nx<\/code>: elimina <em>n<\/em> car\u00e0cters (per exemple, <em>5x<\/em> elimina cinc car\u00e0cters).<\/li>\n<li><code>dd<\/code>: elimina la l\u00ednia actual.<\/li>\n<li><code>dn<\/code>: <em>d<\/em> seguit d\u2019una ordre de moviment. Elimina fins on l\u2019ordre de moviment et portaria (per exemple, <em>d5w<\/em> significa eliminar cinc paraules).<\/li>\n<\/ul>\n<p><strong>Desfer<\/strong><\/p>\n<p>Desfer canvis en <em>vi<\/em> \u00e9s for\u00e7a f\u00e0cil. \u00c9s el car\u00e0cter <em>u<\/em>.<\/p>\n<ul>\n<li><code>u<\/code>: desf\u00e0 l\u2019\u00faltima acci\u00f3 (pots continuar pressionant <em>u<\/em> per continuar desfent).<\/li>\n<li><code>U<\/code> (Nota: maj\u00fascula): desf\u00e0 tots els canvis en la l\u00ednia actual.<\/li>\n<\/ul>\n<p><strong>Portant-ho m\u00e9s enll\u00e0<\/strong><\/p>\n<p>Ara podem inserir contingut en un arxiu, moure\u2019ns per l\u2019arxiu, eliminar contingut i desfer-lo, despr\u00e9s guardar i sortir. Ara podeu fer edicions b\u00e0siques en <em>vi<\/em>. Tanmateix, aix\u00f2 \u00e9s nom\u00e9s la introducci\u00f3 del que <em>vi <\/em>pot fer. Hi ha molt m\u00e9s:<\/p>\n<ul>\n<li>copiar i enganxar<\/li>\n<li>buscar i reempla\u00e7ar<\/li>\n<li><em>buffers <\/em><\/li>\n<li>marcadors<\/li>\n<li>rangs<\/li>\n<li>configuracions<\/li>\n<\/ul>\n<p>Tot i que no \u00e9s possible dedicar-hi m\u00e9s temps, es recomana un tutorial per aprendre a utilitzar <em>vim<\/em> o b\u00e9 accedir directament al seu tutorial interactiu a trav\u00e9s de l\u2019ordre <em>vimtutor<\/em> al terminal.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vim, tamb\u00e9 conegut com a Vi Improved, \u00e9s un editor programable altament potent i vers\u00e0til que es troba present en tots els sistemes GNU\/Linux. Una de les seves principals caracter\u00edstiques \u00e9s que disposa de diferents modes (normal, visual, insert, command-line, select i ex), que s\u2019alternen per dur a terme diferents operacions. Aquesta particularitat el diferencia [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/pages\/652"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/comments?post=652"}],"version-history":[{"count":27,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/pages\/652\/revisions"}],"predecessor-version":[{"id":1358,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/pages\/652\/revisions\/1358"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/media?parent=652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}