Ubuntu Linux žaliems/Vim
Trumpai apie VIM redaktoriaus pranašumus prieš kitus redaktorius ir kodėl redaguoti tekstą su VIM yra kur kas patogiau nei su kitais.
- VIM teksto redaktorius nėra lengvai išmokstamas, teksto redagavimo filosofija pakankamai stipriai skiriasi nuo daugumai įprasto teksto redagavimo būdo. Todėl šie faktai daugumą atbaido nuo šio redaktoriaus. Tačiau įdėtos pastangos mokantis atsiperka su kaupu!
- Dauguma operacijų pasiekiamos pagrindinėje klaviatūros dalyje, todėl teksto redagavimas gali būti itin greitas įvaldžiusiems akląjį spausdinimą, nes neatitraukiant rankų nuo pagrindinės klaviatūros dalies (kur išdėstytos raidės), pasiekiama galybė teksto redagavimui skirtų funkcijų.
- Yra galimybė redaguoti tekstą keliais redagavimo režimais, kas žymiai pagreitina darbą redaguojant programinį kodą.
- Egzistuoja toks dalykas, kaip teksto objektai, tai reiškia, kad galima operuoti norimu teksto objektu, nesivarginant žymint teksto dalį.
Bet kuris norintis rimtai pradėti mokytis "VIM filosofijos" turėtu nuo pradžios iki galo perskaityti vimtutor, kurį galima iškviesti iš komandinės eilutės:
vimtutor
Atsiras tekstas VIM redaktoriaus aplinkoje, reikia tiesiog nuosekliai skaityti, kas parašyta ir bandyti atlikti aprašytus veiksmus, viskas užtruks apie puse valandos, po to, kiekvienas įgys bendrąsias žinias apie navigacija tekste ir pagrindines redagavimo komandas.
Ką reikia žinoti, norint atlikti pagrindinius teksto redagavimo veiksmus
keistiNa, o kas neturi laiko mokytis iš vimtutor, supažindinsiu su pagrindinėmis šio tekstų redaktoriaus savybėmis.
VIM redaktoriumi galima pradėti redaguoti egzistuojantį failą, arba sukurti naują. Kaip ir bet kokiam kitam redaktoriui visi perduodami parametrai, kurie yra gale ir prasideda be brūkšnelio, interpretuojami, kaip failai.
Paleidimo būdai:
vim vi vi file.txt vim file.txt vi file1.txt file2.txt file_a*.txt
Kaip minėjau anksčiau VIM turi kelis redagavimo režimus, tik atsidarius redaguoti failą automatiškai įsijungia komandinis režimas (jei parametrais nenurodoma kitaip). Komandiniame režime negalima įvedinėti teksto! Būtina to neužmiršti. Pagrindiniai redagavimo režimai yra šie:
- komandinis ( ESC )
- teksto įvedimo ( a )
- komandinės eilutės ( : )
- vizualusis, teksto žymėjimui ( v )
Skliausteliuose pažymėti pagrindiniai klavišai, kurių pagalba pereinama į atitinkamą režimą, pirmasis ( ESC ), perėjimui į komandinį režimą veikia visada, o paskutiniai trys veikia tik iš komandinio režimo.
Perėjimas į teksto redagavimo režimą
Perėjimui į teksto redagavimo režimą yra galybė būdų, pasirenkamas atitinkamas, priklausomai nuo situacijos. Kiekvieną kartą, prieš pereinant į teksto įvedimo režimą reikia pastatyti žymeklį (angliškai „cursor“) atitinkamoje vietoje ir tada pasirinkti komandą (vieną klaviatūros klavišą), nuo kurio paspaudimo priklauso kaip bus pradėtas teksto įvedimas:
- a - kairėje simbolio, virš kurio randasi žymeklis (append)
- i - dešinėje simbolio, virš kurio randasi žymeklis (insert)
- A - eilutės pabaigoje (Append)
- I - eilutės pradžioje (Insert)
- o - įterpia naują eilutę, žemiau žymeklio ir pradeda įvedimo režimą
- O - įterpia naują eilutę, aukščiau žymeklio ir pradeda įvedimo režimą
- s - pašalinti simbolį virš kurio randasi žymeklis ir pradėti įvedimą
- C - pašalinti tekstą iki eilutės pabaigos ir pradėti įvedimą
- S - pašalinti visą eilutę ir pradėti įvedimą
Trumpai apie teksto objektus ir kombinuotas komandas su jais
Teksto objektai gali būti žodis, kelių žodžių seka, tarp kurių nėra tarpo simbolio, paragrafas, teksto dalis esanti tarp '(', ')' simbolių, teksto dalis esanti tarp '{', '}' simbolių ir t.t. Kiekvienas teksto objektas būti vidinis (inner) arba išorinis (outer). Nagrinėjant vieną žodį tekste simboliu '|' pažymėsiu vidini ir išorinį teksto objektus: vidinis
tekstas |tekstas| tekstas
išorinis
tekstas| tekstas |tekstas
Kaip matote, vidinis apima tik patį žodį, o išorinis ir tarpus supančius žodį, kalbant apie '(', ')' teksto objektą, bus apimami ne tarpai, o simboliai '(', ')', ta pati taisyklė galioja ir kitiems teksto objektams. Teksto objektų klavišai yra tokie:
- w - žodis atskirtas tarpo arba simboliais, kurie nėra raidės ar skaičiai (word)
- W - žodis kuris atskirtas tik tarpais (Word)
- ) - tekstas esantis tarp skliaustelių
- } - tekstas esantis tarp riestinių skliaustelių
- ] - tekstas esantis tarp laužtinių skliaustelių
Apjungus komandas teksto įvedimui pradėti ir teksto objektus galima pradėti įvesti tekstą vietoje kokio nors objekto, keli pavyzdžiai:
- cw - pradeda teksto įvedimą nuo žodžio vidurio, kur yra žymeklis iki žodžio pabaigos, įskaitant ir tarpo simbolius esančius žodžio pabaigoje
- ce - pradeda teksto įvedimą nuo žodžio vidurio, kur yra žymeklis iki žodžio pabaigos, neįskaitant ir tarpo simbolių esančių žodžio pabaigoje
- ci) - pradeda teksto įvedimą prieš tai panaikinant tekstą esantį tarp skliaustelių, skliausteliai paliekami
- ca} - pradeda teksto įvedimą prieš tai panaikinant visą tekstą esantį tarp riestinių skliaustelių, skliausteliai panaikinami taip pat, veikia ne tik vienoje eilutėje..
Čia vietoje 'c' galima naudoti 'd', tokiu būdu bus panaikinamas tekstas, ir nebus pereinama į komandinį režimą.
Keletas naudingų komandų
Visos žemiau aprašytos komandos veikia komandiniame režime:
- u - kiek kartu spausi, tiek paskutinių atliktų veiksmų panaikins (undo)
- Ctrl+R - sugrąžins 'u' komandos panaikinta paskutinį veiksmą
- . - pakartoja paskutinį atliktą veiksmą, labai naudingas dalykas
- 0 - perkelia žymeklį į eilutės pradžią
- ^ - perkelia žymeklį prie pirmo simbolio nuo eilutės pradžios, kuris nėra tarpo simbolis
- $ - perkelia žymeklį į eilutės pabaigą
- gg - žymeklis perkeliamas į failo pradžią
- G - žymeklis perkeliamas į failo pabaigą
- % - perkelia žymeklį prie sekančio simbolio atitikmens, galimi simboliai: (,),{,},[,]
- * - ieško kito žodžio tekste, kuris yra po žymekliu
- # - ieško ankstesnio žodžio tekste, kuris yra po žymekliu
- n - pakartoja paskutinę paiešką
- N - pakartoja paskutinę paiešką atbuline eiga
- fa - peršoka prie sekančio simbolio 'a'
- Fa - peršoka prie ankstesnio simbolio 'a'
- cf. - naikina eilutę iki simbolio '.', taip pat panaikina ir simbolį '.' ir pradeda įvedimo režimą
- ta - peršoka prieš sekantį simbolį 'a'
- Ta - peršoka prieš ankstesnį simbolį 'a'
- ; - pakartoją paskutinę peršokimo komandą
- x - trina simbolį esantį po žymekliu
- D - trina tekstą iki eilutės pabaigos
- dd - trina visą eilutę
- dw - trina žodį nuo žymeklio padėties žodyje, iki žodžio pabaigos
- Y - kopijuoja visą eilutę
- yi) - kopijuoja visą tekstą esantį tarp skliaustelių
- p - įklijuoja nukopijuotą tekstą po žymekliu, arba po eilute, kurioje yra žymeklis
- P - įklijuoja nukopijuotą tekstą prieš žymeklį, arba virš eilutės, kurioje yra žymeklis
- "+yy - nukopijuoja pažymėtą tekstą į operacinės sistemos iškarpinę
- "+p - įklijuoja tekstą iš operacinės sistemos iškarpinės
- ; - pakartoja paskutinę peršokimo komandą
- ~ - keičia didžiąsias raides mažosiomis ir atvirkščiai
Komandų yra tikrai labai daug, tačiau supratus, kaip jas naudoti, teksto redagavimas pasidaro neįtikėtinai greitas. Taip pat norėčiau atkreipti dėmesį į tai, kad kiekvienas teksto pašalinimo veiksmas automatiškai nukopijuojamas, todėl vėliau ji galima įklijuoti į kitą vietą komandomis p ir P. Taip pat VIM turi operacijų kartojimo galimybe, tai reiškia, kad prieš kiekvieną aukščiau aprašytą komandą įvedus skaičių ji bus tiek kartų pakartota, pvz. įvedus: 10obandymas, bus įterpia 10 eilučių su žodžiu 'bandymas'.
Keletas sudėtingesnių komandų junginių
- xp - sukeičiami du simboliai vietomis
- ddp - sukeičia dvi eilutes vietomis
- Y8p - nukopijuoja visą eilutę ir įterpia ją 8 kartus
- g~w - keičia didžiausias raides mažosiomis ir atvirkščiai visam žodžiui
- ggcG - naikinamas visas failo turinys ir pereinama į teksto įvedimo režimą
Kelių failų redagavimas
keistiRedaguojant daugiau nei vieną failą, prie sekančio pereinama, komandiniame režime įvedus:
- :bn - pereina prie sekančio failo.
- :bp - pereina prie ankstesnio failo.
- :b# - pereina į priš tai redaguotą failą.
- :b e2 - 'e2' yra unikalus failo fragmentas iš bet kurios vietos failo pavadinime, jei yra keli failai su tokiu fragmentu, pasirodys pranešimas, kad yra keli failai, tada galima spausti Ctrl+D, kad pasirodytu sąrašas, šiuo atveju bus atidarytas failas file2.txt.
- :b 3 - pereina prie failo, kurio id yra 3.
- :ls - parodo visų atidarytų redagavimui failų sąrašą, taip pat kiekvieno failo id.
Darbas VIM redaktoriumi Easy režimu
keistiPaleidus VIM redaktorių tokiomis komandomis:
evim vim -y vi -y
bus paleistas redaktorius easy režimu, tai reiškia, kad galėsite įvedinėti tekstą, taip kaip tai darote su bet kokiu kitu redaktoriumi, vadinamuoju 'click-and-type' būdu.