1. Introducció als entorns de treball UNIX

1.9. Accedir al contingut dels fitxers

1.9.2. Edició d’arxius amb l’editor vim

Vim, també conegut com a Vi Improved, és un editor programable altament potent i versàtil que es troba present en tots els sistemes GNU/Linux. Una de les seves principals característiques és que disposa de diferents modes (normal, visual, insert, command-line, select i ex), que s’alternen per dur a terme diferents operacions. Aquesta particularitat el diferencia de la majoria dels editors comuns, que solen tenir una única opció (insert) on s’introdueixen les ordres mitjançant combinacions de tecles o interfícies gràfiques.

La totalitat del control de vim es realitza a través del teclat des d’un terminal, cosa que el fa ideal per ser utilitzat sense problemes a través de connexions remotes, ja que no desplegar un entorn gràfic perquè no carrega el sistema. Aprendre a utilitzar vim és altament recomanable per la seva capacitat per augmentar la productivitat i l’eficiència en la programació.

En aquest apartat us expliquem dues modalitats de vim: mode d’inserció (o entrada) i mode d’edició. En el mode d’inserció, es pot introduir o ingressar contingut a l’arxiu. En el mode d’edició, ens podem moure per l’arxiu, realitzar accions com eliminar, copiar, buscar i reemplaçar, guardar, etc. Un error comú és començar a ingressar ordres sense tornar primer al mode d’edició o començar a escriure una entrada sense entrar primer en el mode d’inserció. Si feu qualsevol d’aquestes coses, generalment serà fàcil recuperar, així que no us preocupeu, després us ho explicarem.

Comencem! Serà difícil demostrar-vos tot el procés en la seva major part, així que, en lloc vostre, citarem el que cal escriure i haureu d’intentar-ho, a veure com us va.

Primer, genereu un nou directori, perquè es crearan alguns arxius i això els mantindrà fora del vostre material normal. Ara editarem el nostre primer arxiu.

$ vi primer-fitxer

Quan executes aquesta ordre, s’obre l’arxiu. Si l’arxiu no existeix, el crearà per a nosaltres i després l’obrirà (no cal que executeu touch arxiu abans d’editar-lo). Un cop ingressem a vim, es veurà alguna cosa similar a la figura 3 (tot i que, depenent del sistema en què us trobeu, es pot veure lleugerament diferent).

Figura 3. Imatge obtinguda en executar l’ordre vi primer-fitxer.

Sempre començarem en mode d’edició, de manera que el primer que farem és passar al mode d’inserció pressionant la lletra i. Podeu saber quan esteu en mode d’inserció, perquè ho veureu indicat a la cantonada inferior esquerra. Ara escriviu algunes línies de text i pressioneu Esc, cosa que et portarà de tornada al mode d’edició.

Saveexisting

Hi ha algunes formes de fer-ho. Totes fan essencialment el mateix, així que tria la que prefereixis. En qualsevol cas, assegura’t d’estar primer en mode d’edició.

:ZZ (Nota: en majúscules). Guardar i sortir.

:q! Descartar tots els canvis des de l’últim guardar i sortir.

:w Guardar l’arxiu però no sortir.

:wq Novament, guardar i sortir.

La majoria de les ordres dins de vi s’executen tan bon punt pressionem una seqüència de tecles. Qualsevol ordre que comenci amb dos punts (:) requereix que pressionem <enter> per completar-la. Guardeu i salveu l’arxiu que teniu actualment obert.

L’editor vi permet editar arxius. Si volguéssim, també podríem fer-lo servir per veure arxius, però hi ha altres ordres que són una mica més convenients per a aquest propòsit. Provem cat, que en realitat significa concatenar i té com a objectiu principal unir arxius, però que en la seva forma més bàsica és útil per, simplement, veure arxius, com ja s’ha vist.

Navegant en un fitxer vi

Ara tornem a l’arxiu que acabem de crear i afegim-hi més contingut. En el mode d’inserció, podem fer servir les tecles de fletxa per moure el cursor. Afegiu dos paràgrafs més de contingut i després pressioneu Esc per tornar al mode d’edició.

A continuació, es mostren algunes de les moltes ordres que podem utilitzar per moure’ns per l’arxiu. Jugueu-hi i observeu com funcionen.

  • Tecles de fletxa: mou el cursor per l’arxiu.
  • j, k, h, l: mou el cursor cap avall, amunt, esquerra i dreta (similar a les tecles de fletxa).
  • ^ (accent circumflex): mou el cursor al principi de la línia actual.
  • $ : mou el cursor al final de la línia actual.
  • nG: mou el cursor fins a la n-ena línia (per exemple, 5G es mou a la cinquena línia).
  • G: mou el cursor fins a l’última línia.
  • w: mou el cursor al principi de la següent paraula.
  • nw: mou el cursor n paraules cap endavant (per exemple, 2w el mou dues paraules cap endavant).
  • b: mou el cursor al principi de la paraula anterior.
  • nb: mou el cursor cap enrere n
  • { : mou un paràgraf cap enrere, }: mou un paràgraf cap endavant.

Si escriviu :set nu en el mode d’edició dins de vi, s’habilitaran els números de línia. Descobrireu que és una manera molt més senzilla de treballar amb arxius.

Eliminant contingut

Acabem de veure que, si volem moure’ns dins de vi, hi ha moltes opcions disponibles. Diverses d’elles també ens permeten precedir-les amb un número per moure’ns la mateixa quantitat de vegades. Eliminar i desplaçar-se serveixen, de fet, de manera similar: diverses ordres d’eliminació ens permeten incorporar una ordre de moviment per definir el que s’eliminarà. A continuació, es mostren algunes de les moltes formes com podem eliminar contingut dins de vi. Jugueu amb elles ara (consulteu també la secció següent sobre com desfer per poder tirar enrere les vostres eliminacions).

  • x: elimina un sol caràcter.
  • nx: elimina n caràcters (per exemple, 5x elimina cinc caràcters).
  • dd: elimina la línia actual.
  • dn: d seguit d’una ordre de moviment. Elimina fins on l’ordre de moviment et portaria (per exemple, d5w significa eliminar cinc paraules).

Desfer

Desfer canvis en vi és força fàcil. És el caràcter u.

  • u: desfà l’última acció (pots continuar pressionant u per continuar desfent).
  • U (Nota: majúscula): desfà tots els canvis en la línia actual.

Portant-ho més enllà

Ara podem inserir contingut en un arxiu, moure’ns per l’arxiu, eliminar contingut i desfer-lo, després guardar i sortir. Ara podeu fer edicions bàsiques en vi. Tanmateix, això és només la introducció del que vi pot fer. Hi ha molt més:

  • copiar i enganxar
  • buscar i reemplaçar
  • buffers
  • marcadors
  • rangs
  • configuracions

Tot i que no és possible dedicar-hi més temps, es recomana un tutorial per aprendre a utilitzar vim o bé accedir directament al seu tutorial interactiu a través de l’ordre vimtutor al terminal.