8 Interessante 'Vi/Vim' Editor tips og triks for enhver Linux-administrator - Del 2


I den forrige artikkelen i denne serien gjennomgikk vi 7 tips og triks for å legge til ditt vi/m-ferdighetssett. I tillegg til grunnene som er gitt tidligere, er det en nødvendig kompetanse for å bestå et hvilket som helst større Linux-sertifiseringsprogram (som LFCS, LFCE, RHCSA og RHCE) å lære å bruke en tekstredigerer effektivt i Linux i en viktig evne for en systemadministrator eller ingeniør. .

Når det er sagt, la oss komme i gang.

TIPS #8: Lag horisontale eller vertikale vinduer

Dette tipset ble delt av Yander, en av våre lesere, i del 1. Du kan starte vi/m med flere horisontale eller vertikale inndelinger for å redigere separate filer i samme hovedvindu:

Start vi/m med to horisontale vinduer, med test1 øverst og test2 nederst

vim -o test1 test2 

Start vi/m med to vertikale vinduer, med test3 til venstre og test4 til høyre:

vim -O test3 test4 

Du kan bytte markøren fra ett vindu til et annet med den vanlige vi/m-bevegelsesrutinen (h: høyre, l: venstre, j: nederst, k: øverst):

  1. Ctrl+w k – øverst
  2. Ctrl+w j – nederst
  3. Ctrl+w l – venstre
  4. Ctrl+w h – høyre

TIPS #9: Endre bokstaver, ord eller hele linjer til STORE eller små bokstaver

Vær oppmerksom på at dette tipset bare fungerer i vim. I de neste eksemplene er X et heltall.

  1. For å endre en serie med bokstaver til store bokstaver, plasser markøren på den første bokstaven, skriv deretter gUX i ex-modus, og trykk til slutt på høyrepilen på tastaturet.
  2. For å endre X antall ord, plasser markøren i begynnelsen av ordet, og skriv gUXw i ex-modus.
  3. For å endre en hel linje til store bokstaver, plasser markøren hvor som helst på linjen og skriv gUU i ex-modus.

For eksempel, for å konvertere en hel små bokstav til store bokstaver, bør du plassere markøren hvor som helst på linjen og skrive inn gUU:

For eksempel, for å konvertere 2 store ord til små bokstaver, bør du plassere markøren i begynnelsen av det første ordet og skrive gu2w:

TIPS #10: Slett tegn, ord eller til begynnelsen av en linje i INSERT-modus

Mens du kan slette tegn eller flere ord samtidig i ex-modus (dvs. dw for å slette et ord), kan du også gjøre det i Sett inn-modus som følger:

  1. Ctrl + h: slett det forrige tegnet til stedet der markøren befinner seg.
  2. Ctrl + w: slett det forrige ordet til stedet der markøren befinner seg. For at dette skal fungere riktig, må markøren plasseres på et tomt sted etter ordet du må slette.
  3. Ctrl + u: slett gjeldende linje som begynner med tegnet rett til venstre for stedet der markøren er.

TIPS #11: Flytt eller kopier eksisterende linjer til en annen linje i dokumentet

Selv om det er sant at du kan bruke de velkjente dd-, yy- og p-kommandoene i ex-modus for å henholdsvis slette, rykke (kopiere) og lime inn linjer, som bare fungerer når markøren er plassert der du vil utføre disse operasjonene . Den gode nyheten er at med kommandoene kopier og flytt kan du gjøre det samme uavhengig av hvor markøren er plassert.

For det neste eksemplet vil vi bruke et kort dikt med tittelen «For alltid» av Terri Nicole Tharrington. Til å begynne med vil vi få vim til å vise linjenumrene (:sett nu i kommandomodus – betrakt dette som et ekstra tips). Vi vil bruke :3copy5 (også i kommandomodus) for å kopiere linje 3 under linje 5:

Angre nå siste endring (Esc + u – nok et bonustips!) og skriv :1move7 for å erstatte linje 7 med linje 1. Vær oppmerksom på hvordan linje 2 til 7 forskyves opp og tidligere linje 1 okkuperer nå linje 7:

TIPS #12: Tell treff som er et resultat av et søk etter mønster og flytt fra en forekomst til en annen

Dette tipset er basert på erstatningskommandoen (tips #7 i Del 1 av denne serien), med unntak av at det ikke vil fjerne noe siden erstatningsatferden overstyres av alternativet n, noe som resulterer i antall forekomster av det angitte mønsteret:

Pass på at du ikke utelater noen av skråstrekene fremover!

:%s/pattern//gn 

For eksempel,

:%s/libero//gn

For å flytte fra en forekomst av mønsteret til den neste i ex-modus, trykk n (små bokstaver N). For å gå til forrige forekomst, trykk N.

TIPS #13: Åpne vi/m direkte i en spesifisert linje

Som standard, når du starter vi/m, plasseres markøren først på den siste linjen som ble redigert. Hvis du vil åpne programmet og få markøren direkte plassert på en spesifisert linje, kan du bruke følgende triks:

vim filename +line_number

Åpne for eksempel forever.txt og plasser markøren på linje 6:

vim forever.txt +6

La oss justere dette eksemplet litt. Anta at vi vil åpne filen på linjen der den tredje forekomsten av mønsteret vises:

vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)

La oss se nærmere på hva kommandoen ovenfor gjør:

  1. grep -in pattern filename – viser alle linjer fra filnavnet der mønsteret forekommer, med linjenummeret i begynnelsen av hver utdatalinje.
  2. sed -n 3p – viser den tredje linjen fra forrige pipelines utgang.

Endelig,

  1. cut -d: -f1 returnerer det første feltet i den forrige rørledningen med kolon (:) som feltseparator.
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1

Resultatet av forrige kommando sendes deretter til vi/m for å åpne programmet på den angitte linjen.

TIPS #14: Tilpass vi/m-miljøet ditt

Hvis du bruker vi/m til å redigere konfigurasjonsfiler eller til å skrive kode, vil du ønske å kunne vise linjenumrene når du åpner programmet for første gang og sette automatisk innrykk slik at når du trykker Enter tasten, vil markøren automatisk plasseres i riktig posisjon. I tillegg kan det være lurt å tilpasse antall hvite mellomrom en fane opptar.

Selv om du kan gjøre det hver gang du starter vi/m, er det enklere å angi disse alternativene i ~/.vimrc slik at de blir brukt automatisk:

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

For ytterligere alternativer for å tilpasse vi/m-miljøet ditt, kan du se den elektroniske vim-dokumentasjonen.

TIPS #15: Få generell Vim-hjelp/alternativer med vimtutor

Hvis du når som helst trenger å friske opp dine generelle vi/m-ferdigheter, kan du starte vimtutor fra kommandolinjen som vil vise en full vi/m-hjelp som du kan referere til så ofte du ønsker uten å måtte starte en nettleser for å søke hvordan du utfører en bestemt oppgave i vi/m.

vimtutor

Merk at du kan navigere eller søke i innholdet i vimtutor som om du navigerer i en vanlig fil i vi/m.

Sammendrag

I denne serien med to artikler har jeg delt flere vi/m-tips og triks som bør hjelpe deg til å bli mer effektiv når det gjelder redigering av tekst ved hjelp av kommandolinjeverktøy. Jeg er sikker på at du må ha andre – så del dem gjerne med resten av fellesskapet ved å bruke skjemaet nedenfor. Som alltid er spørsmål og kommentarer også velkomne.