LFCS: Com instal·lar i utilitzar vi/vim com a editor de text complet - Part 2


Fa un parell de mesos, la Linux Foundation va llançar la certificació LFCS (Linux Foundation Certified Sysadmin) per ajudar persones d'arreu del món a verificar que són capaços de fer tasques bàsiques o intermèdies d'administració de sistemes en sistemes Linux: suport del sistema, primer -Resolució de problemes manuals i manteniment, a més de la presa de decisions intel·ligents per saber quan és el moment de plantejar problemes als equips de suport superiors.

Si us plau, mireu el vídeo següent que explica el programa de certificació de la Fundació Linux.

Aquesta publicació és la part 2 d'una sèrie de 10 tutorials, aquí en aquesta part, tractarem les operacions bàsiques d'edició de fitxers i els modes de comprensió a l'editor vi/m, que són necessaris per a l'examen de certificació LFCS.

Realitzeu operacions bàsiques d'edició de fitxers amb vi/m

Vi va ser el primer editor de text a pantalla completa escrit per a Unix. Tot i que estava pensat per ser petit i senzill, pot ser una mica difícil per a les persones que utilitzen exclusivament editors de text GUI, com ara NotePad++ o gedit, per citar alguns exemples.

Per utilitzar Vi, primer hem d'entendre els 3 modes en què opera aquest potent programa, per tal de començar a aprendre més tard sobre els seus potents procediments d'edició de text.

Tingueu en compte que la majoria de les distribucions de Linux modernes s'envien amb una variant de vi coneguda com a vim (Vi millorat), que admet més funcions que la vi original. Per això raó, al llarg d'aquest tutorial farem servir vi i vim de manera intercanviable.

Si la vostra distribució no té vim instal·lat, podeu instal·lar-lo de la següent manera.

  1. Ubuntu i derivats: aptitude update && aptitude install vim
  2. Distribucions basades en Red Hat: yum update i&yum install vim
  3. openSUSE: zypper update && zypper install vim

Per què hauria de voler aprendre vi?

Hi ha almenys 2 bones raons per aprendre vi.

1. vi sempre està disponible (independentment de la distribució que utilitzeu) ja que POSIX ho requereix.

2. vi no consumeix una quantitat considerable de recursos del sistema i ens permet realitzar qualsevol tasca imaginable sense aixecar els dits del teclat.

A més, vi té un manual integrat molt ampli, que es pot llançar mitjançant l'ordre :help just després d'iniciar el programa. Aquest manual integrat conté més informació que la pàgina de manual de vi/m.

Per llançar vi, escriviu vi a l'indicador d'ordres.

A continuació, premeu i per entrar al mode Insereix i podreu començar a escriure. Una altra manera de llançar vi/m és.

# vi filename

El que obrirà un nou buffer (més sobre els buffers més endavant) anomenat nom de fitxer, que després podreu desar al disc.

1. En el mode d'ordres, vi permet a l'usuari navegar pel fitxer i introduir ordres vi, que són combinacions breus que distingeixen entre majúscules i minúscules d'una o més lletres. Gairebé tots es poden prefixar amb un número per repetir l'ordre aquest nombre de vegades.

Per exemple, yy (o Y) copia tota la línia actual, mentre que 3yy (o 3Y) copia la línia actual. tota la línia actual juntament amb les dues línies següents (3 línies en total). Sempre podem entrar al mode d'ordres (independentment del mode en què estem treballant) prement la tecla Esc. El fet que en el mode d'ordres les tecles del teclat s'interpreten com a ordres en lloc de text acostuma a ser confús per als principiants.

2. En mode ex, podem manipular fitxers (incloent-hi desar un fitxer actual i executar programes externs). Per entrar en aquest mode, hem d'escriure dos punts (:) des del mode d'ordres, seguits directament del nom de l'ordre ex-mode que cal utilitzar. Després d'això, vi torna automàticament al mode d'ordres.

3. En el mode d'inserció (la lletra i s'utilitza habitualment per entrar en aquest mode), simplement introduïm text. La majoria de les pulsacions de tecles fan que el text aparegui a la pantalla (una excepció important és la tecla Esc, que surt del mode d'inserció i torna al mode d'ordres).

La taula següent mostra una llista d'ordres vi que s'utilitzen habitualment. Les ordres d'edició de fitxers es poden aplicar afegint el signe d'exclamació a l'ordre (per exemple,

Les opcions següents poden ser útils mentre executeu vim (hem d'afegir-les al nostre fitxer ~/.vimrc).

# echo set number >> ~/.vimrc
# echo syntax on >> ~/.vimrc
# echo set tabstop=4 >> ~/.vimrc
# echo set autoindent >> ~/.vimrc

  1. establir número mostra els números de línia quan vi obre un fitxer existent o nou.
  2. sintaxi activa el ressaltat de sintaxi (per a diverses extensions de fitxer) per tal de fer que els fitxers de codi i configuració siguin més llegibles.
  3. set tabstop=4 estableix la mida de la pestanya en 4 espais (el valor predeterminat és 8).
  4. set autoindent trasllada el sagnat anterior a la línia següent.

vi té la capacitat de moure el cursor a una ubicació determinada (en una sola línia o sobre un fitxer sencer) en funció de les cerques. També pot realitzar substitucions de text amb o sense confirmació de l'usuari.

a). Cercar dins d'una línia: l'ordre f cerca una línia i mou el cursor a la següent ocurrència d'un caràcter especificat a la línia actual.

Per exemple, l'ordre fh mou el cursor a la següent instància de la lletra h dins de la línia actual. Tingueu en compte que ni la lletra f ni el caràcter que esteu cercant apareixeran en cap lloc de la pantalla, però el caràcter es ressaltarà després de prémer Retorn.

Per exemple, això és el que tinc després de prémer f4 en mode d'ordres.

b). Cercar un fitxer sencer: utilitzeu l'ordre /, seguida de la paraula o frase que voleu cercar. Es pot repetir una cerca utilitzant la cadena de cerca anterior amb l'ordre n, o la següent (utilitzant l'ordre N). Aquest és el resultat d'escriure /Jane en mode d'ordres.

c). vi utilitza una ordre (similar a la de sed) per realitzar operacions de substitució en un rang de línies o un fitxer sencer. Per canviar la paraula \vell a \jove per a tot el fitxer, hem d'introduir l'ordre següent.

 :%s/old/young/g 

Avís: els dos punts al començament de l'ordre.

Els dos punts (:) inicia l'ordre ex, s en aquest cas (per a la substitució), % és una drecera que significa de la primera línia a l'última línia (l'interval també es pot especificar com a n,m que significa \de la línia n a la línia m), antiga és el patró de cerca, mentre que jove és el text de substitució, i g indica que la substitució s'ha de realitzar en cada cas de la cadena de cerca al fitxer.

Alternativament, es pot afegir una c al final de l'ordre per demanar confirmació abans de realitzar qualsevol substitució.

:%s/old/young/gc

Abans de substituir el text original pel nou, vi/m ens presentarà el següent missatge.

  1. i: realitza la substitució (sí)
  2. n: omet aquesta ocurrència i passa a la següent (no)
  3. a: realitzeu la substitució en aquesta i totes les instàncies posteriors del patró.
  4. q o Esc: deixa de substituir.
  5. l (L minúscula): realitzeu aquesta substitució i sortiu (última).
  6. Ctrl-e, Ctrl-y: desplaceu-vos cap avall i cap amunt, respectivament, per veure el context de la substitució proposada.

Escrivim vim file1 file2 file3 al nostre indicador d'ordres.

# vim file1 file2 file3

Primer, vim obrirà fitxer1. Per canviar al fitxer següent (fitxer2), hem d'utilitzar l'ordre :n. Quan volem tornar al fitxer anterior, :N farà la feina.

Per canviar de fitxer1 a fitxer3.

a). L'ordre :buffers mostrarà una llista del fitxer que s'està editant actualment.

:buffers

b). L'ordre :buffer 3 (sense les s al final) obrirà el fitxer3 per editar-lo.

A la imatge de dalt, un signe de lletra (#) indica que el fitxer està obert actualment però al fons, mentre que %a marca el fitxer que s'està editant actualment. D'altra banda, un espai en blanc després del número de fitxer (3 a l'exemple anterior) indica que el fitxer encara no s'ha obert.

Per copiar un parell de línies consecutives (per exemple, 4) a un buffer temporal anomenat a (no associat amb un fitxer) i col·locar aquestes línies en una altra part del fitxer més endavant en el vi actual secció, hem de...

1. Premeu la tecla ESC per assegurar-vos que estem en mode d'ordres vi.

2. Situeu el cursor a la primera línia del text que volem copiar.

3. Escriviu a4yy per copiar la línia actual, juntament amb les 3 línies posteriors, en un buffer anomenat a. Podem continuar editant el nostre fitxer; no necessitem inserir les línies copiades immediatament.

4. Quan arribem a la ubicació de les línies copiades, utilitzeu “a abans de les ordres p o P per inserir les línies copiades a la memòria intermèdia. anomenat a:

  1. Escriviu ap per inserir les línies copiades a la memòria intermèdia a després de la línia actual sobre la qual es recolza el cursor.
  2. Escriviu aP per inserir les línies copiades a la memòria intermèdia a abans de la línia actual.

Si ho desitgem, podem repetir els passos anteriors per inserir el contingut del buffer a en diversos llocs del nostre fitxer. Un buffer temporal, com el d'aquesta secció, s'elimina quan es tanca la finestra actual.

Resum

Com hem vist, vi/m és un editor de text potent i versàtil per a la CLI. No dubteu a compartir els vostres propis trucs i comentaris a continuació.

  1. Sobre l'LFCS
  2. Per què obtenir una certificació de la Fundació Linux?
  3. Registreu-vos a l'examen LFCS

Actualització: si voleu ampliar les vostres habilitats d'editor VI, us suggeriria que llegiu les dues guies següents que us guiaran a alguns trucs i consells útils per a l'editor VI.