8 įdomūs „Vi/Vim“ redaktoriaus patarimai ir gudrybės kiekvienam „Linux“ administratoriui – 2 dalis


Ankstesniame šios serijos straipsnyje apžvelgėme 7 patarimus ir gudrybes, kaip papildyti savo vi/m įgūdžių rinkinį. Be anksčiau nurodytų priežasčių, išmokti efektyviai naudoti teksto rengyklę sistemoje „Linux“ yra esminis sistemos administratoriaus ar inžinieriaus gebėjimas ir yra būtina kompetencija, norint išlaikyti bet kurią pagrindinę „Linux“ sertifikavimo programą (pvz., LFCS, LFCE, RHCSA ir RHCE). .

Tai sakė, pradėkime.

8 PATARIMAS: sukurkite horizontalius arba vertikalius langus

Šiuo patarimu 1 dalyje pasidalijo Yoander, vienas iš mūsų skaitytojų. Galite paleisti vi/m su keliais horizontaliais arba vertikaliais padalijimus, kad galėtumėte redaguoti atskirus failus tame pačiame pagrindiniame lange:

Paleiskite vi/m su dviem horizontaliais langais su test1 viršuje ir test2 apačioje

vim -o test1 test2 

Paleiskite vi/m su dviem vertikaliais langais su test3 kairėje ir test4 dešinėje:

vim -O test3 test4 

Galite perjungti žymeklį iš vieno lango į kitą naudodami įprastą vi/m judėjimo tvarką (h: dešinėn, l: kairėn, j: apačioje, k: viršuje):

  1. Ctrl+w k – viršuje
  2. Ctrl+w j – apačioje
  3. Ctrl+w l – kairėn
  4. Ctrl+w h – dešinėn

9 PATARIMAS: pakeiskite raides, žodžius ar visas eilutes į DIDŽIOSIAS arba mažąsias raides

Atminkite, kad šis patarimas veikia tik vim. Kituose pavyzdžiuose X yra sveikasis skaičius.

  1. Norėdami pakeisti raidžių seriją į didžiąsias, nustatykite žymeklį ant pirmosios raidės, tada įveskite gUX režimu ex ir galiausiai paspauskite klaviatūros rodyklę dešinėn.
  2. Norėdami pakeisti X žodžių skaičių, užveskite žymeklį žodžio pradžioje ir įveskite gUXw režimu ex.
  3. Norėdami pakeisti visą eilutę į didžiąsias, užveskite žymeklį bet kurioje eilutės vietoje ir įveskite gUU režimu ex.

Pavyzdžiui, norėdami konvertuoti visą eilutę mažosiomis raidėmis į didžiąsias, uždėkite žymeklį bet kurioje eilutės vietoje ir įveskite gUU:

Pavyzdžiui, norėdami paversti 2 didžiosiomis žodžius į mažąsias raides, uždėkite žymeklį pirmojo žodžio pradžioje ir įveskite gu2w:

10 PATARIMAS: Įterpimo režimu ištrinkite simbolius, žodžius arba iki eilutės pradžios

Nors galite ištrinti simbolius arba kelis žodžius vienu metu ex režimu (t. y. dw norėdami ištrinti žodį), taip pat galite tai padaryti įterpimo režimu taip:

  1. Ctrl + h: ištrinkite ankstesnį simbolį toje vietoje, kur šiuo metu yra žymeklis.
  2. Ctrl + w: ištrinkite ankstesnį žodį į vietą, kurioje šiuo metu yra žymeklis. Kad tai veiktų tinkamai, žymeklį reikia įdėti į tuščią vietą po žodžio, kurį reikia ištrinti.
  3. Ctrl + u: ištrinkite dabartinę eilutę, prasidedančią simboliu, esančiu iš karto kairėje nuo vietos, kurioje yra žymeklis.

11 PATARIMAS: perkelkite arba nukopijuokite esamas eilutes į kitą dokumento eilutę

Nors tiesa, kad ex režimu galite naudoti gerai žinomas komandas dd, yy ir p, norėdami atitinkamai ištrinti, traukti (kopijuoti) ir įklijuoti eilutes, kurios veikia tik tada, kai žymeklis yra ten, kur norite atlikti tas operacijas. . Geros naujienos yra tai, kad naudodami komandas kopijuoti ir perkelti galite daryti tą patį, nepaisant to, kur šiuo metu yra žymeklis.

Kitame pavyzdyje naudosime trumpą Terri Nicole Tharrington eilėraštį pavadinimu „Amžinai“. Norėdami pradėti, turėsime vim rodyti eilučių numerius (:set nu komandų režimu – apsvarstykite tai kaip papildomą patarimą). Naudosime :3copy5 (taip pat komandų režimu), norėdami nukopijuoti 3 eilutę po 5 eilute:

Dabar anuliuokite paskutinį pakeitimą (Esc + u – dar vienas patarimas!) ir įveskite :1move7, kad pakeistumėte 7 eilutę 1 eilute. Atkreipkite dėmesį, kaip perkeliamos 2–7 eilutės aukštyn ir buvusi 1 eilutė dabar užima 7 eilutę:

12 PATARIMAS: suskaičiuokite atitikmenis, gautus ieškant pagal šabloną, ir pereikite nuo vieno įvykio prie kito

Šis patarimas pagrįstas pakaitine komanda (patarimas #7 šios serijos 1 dalyje), išskyrus tai, kad jis nieko nepašalins, nes pakaitalo elgesys yra nepaisomas parinktis n, todėl bus skaičiuojamas nurodyto šablono atvejų skaičius:

Įsitikinkite, kad nepraleidžiate nė vieno į priekį nukreipto brūkšnio!

:%s/pattern//gn 

Pavyzdžiui,

:%s/libero//gn

Norėdami pereiti nuo vieno šablono atvejo prie kito ex režimu, paspauskite n (mažosiomis raidėmis N). Norėdami pereiti prie ankstesnio atvejo, paspauskite N.

13 PATARIMAS: tiesiogiai atidarykite vi/m nurodytoje eilutėje

Pagal numatytuosius nustatymus, kai paleidžiate vi/m, žymeklis iš pradžių įdedamas į paskutinę redaguotą eilutę. Jei norite atidaryti programą ir nukreipti žymeklį tiesiai į nurodytą eilutę, galite naudoti šį triuką:

vim filename +line_number

Pavyzdžiui, atidarykite forever.txt ir įveskite žymeklį į 6 eilutę:

vim forever.txt +6

Šiek tiek pataisykime šį pavyzdį. Tarkime, kad norime atidaryti failą eilutėje, kurioje pasirodo 3-asis modelio atvejis:

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

Pažvelkime atidžiau, ką daro aukščiau pateikta komanda:

  1. grep -in šablono failo pavadinimas – rodomos visos eilutės iš failo pavadinimo, kuriame yra šablonas, su eilutės numeriu kiekvienos išvesties eilutės pradžioje.
  2. sed -n 3p – rodo 3 eilutę iš ankstesnio konvejerio išvesties.

Pagaliau,

  1. cut -d: -f1 grąžina pirmąjį ankstesnio dujotiekio lauką, o dvitaškis (:) yra lauko skyriklis.
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1

Tada ankstesnės komandos rezultatas perduodamas vi/m, kad programa būtų atidaryta nurodytoje eilutėje.

14 PATARIMAS: pritaikykite savo vi/m aplinką

Jei naudojate vi/m konfigūracijos failams redaguoti arba kodui rašyti, pirmą kartą atidarę programą norėsite matyti eilučių numerius ir nustatyti automatinę įtrauką, kad paspaudus Enter > klavišą, žymeklis bus automatiškai perkeltas į tinkamą vietą. Be to, galbūt norėsite tinkinti skirtuko užimamų tarpų skaičių.

Nors tai galite padaryti kiekvieną kartą paleidę vi/m, lengviau nustatyti šias parinktis ~/.vimrc, kad jos būtų taikomos automatiškai:

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

Daugiau parinkčių, kaip tinkinti vi/m aplinką, rasite internetinėje vim dokumentacijoje.

15 PATARIMAS: Gaukite „General Vim“ pagalbos/parinkčių naudodami „vimtutor“.

Jei bet kuriuo metu jums reikia patobulinti savo bendruosius vi/m įgūdžius, galite paleisti vimtutor iš komandinės eilutės, kuri parodys visą vi/m žinyną, kurį galėsite naudoti taip dažnai, kaip norite. nereikia paleisti žiniatinklio naršyklės, kad būtų galima ieškoti, kaip atlikti tam tikrą užduotį vi/m.

vimtutor

Atminkite, kad galite naršyti arba ieškoti vimtutor turinio taip, lyg naršytumėte įprastą failą vi/m.

Santrauka

Šioje 2 straipsnių serijoje pasidalinau keliais vi/m patarimais ir gudrybėmis, kurios turėtų padėti jums būti veiksmingesniems, kai reikia redaguoti tekstą naudojant komandinės eilutės įrankius. Esu tikras, kad turite kitų, todėl nedvejodami pasidalykite jais su likusia bendruomene naudodami toliau pateiktą formą. Kaip visada, laukiami klausimai ir komentarai.