VIM: Difference between revisions
No edit summary |
|||
Line 40: | Line 40: | ||
* sisestus töörežiim (insert mode) - enamus klahvivajutustest sisestatakse tekstina | * sisestus töörežiim (insert mode) - enamus klahvivajutustest sisestatakse tekstina | ||
* visuaalne töörežiim (visual mode) - aitab visuaalselt teksti valida ja on ühtlasi käsu töörežiimi alamrežiim | * visuaalne töörežiim (visual mode) - aitab visuaalselt teksti valida ja on ühtlasi käsu töörežiimi alamrežiim | ||
Sisestus ja visuaalsest režiimist käsurežiimi liikumiseks tuleb | Vim'is on mitteteadjal kasutajal väga kerge endale "käkki kokku keerata", seega tuleb teada, kuidas Vim'ist lahkuda muutusi salvestamata. Selleks tuleb olla käsurežiimis, vajutada "ESC" klahvi ja väljumiseks sisestada :q! | ||
Sisestus ja visuaalsest režiimist käsurežiimi liikumiseks tuleb vajutada "ESC" klahvi. | |||
[[File:vim3.JPEG]] | [[File:vim3.JPEG]] | ||
Line 61: | Line 62: | ||
[[File:vim4.JPEG]] | [[File:vim4.JPEG]] | ||
Mõned tähtsamad käsud, mis on paljude teiste käskude aluseks: | Mõned tähtsamad käsud, mis on paljude teiste käskude aluseks: | ||
* 0 - liigu | * 0 - liigu rea algusesse | ||
* ^ - liigu esimese mittetühja tähemärgini reas | * ^ - liigu esimese mittetühja tähemärgini reas | ||
* w - hüppa järgmise sõnani | * w - hüppa järgmise sõnani | ||
Line 80: | Line 81: | ||
Nagu eelnevalt mainitud tuleb teksti sisestamiseks minna sisestusrežiimi kasutades käsku "i". | Nagu eelnevalt mainitud tuleb teksti sisestamiseks minna sisestusrežiimi kasutades käsku "i". | ||
* d - kustuta tähemärgid kursori positsioonist kuni järgmise käsu poolt antud positsioonini (nt. d$ kustutab kõik tähemärgid kursori positsioonist kuni viimase veeruni reas) | * d - kustuta tähemärgid kursori positsioonist kuni järgmise käsu poolt antud positsioonini (nt. d$ kustutab kõik tähemärgid kursori positsioonist kuni viimase veeruni reas) | ||
* dw - kustuta sõna | |||
* c - muuda tähemärki kursori positsioonist kuni järgmise käsu poolt antud positsioonini | * c - muuda tähemärki kursori positsioonist kuni järgmise käsu poolt antud positsioonini | ||
* x - kustuta kursori all olev tähemärk | * x - kustuta kursori all olev tähemärk | ||
Line 90: | Line 92: | ||
* . - korda viimati sisestatud või muudetud käsku (x, d, p, ..) | * . - korda viimati sisestatud või muudetud käsku (x, d, p, ..) | ||
d, c või y dubleerimine avaldab mõju kogu reale. Nt. yy kopeerib kogu rea. | d, c või y dubleerimine avaldab mõju kogu reale. Nt. yy kopeerib kogu rea. | ||
Muudetud faili salvestamiseks ja Vim'ist lahkumiseks kasutatakse käsurežiimis :wq käsku või SHIFT+zz. | |||
== Visuaalne plokk režiim == | == Visuaalne plokk režiim == | ||
Visuaalplokkrežiimi kasutades on üsna lihtne märgistatud ala igale reale tähemärke sisestada. Oletame, et oleme valinud ristküliku (CTRL-v), nüüd saame selle ette sisestada teksti vajutades "I" (lülita sisestusrežiimi). Kui lülitame end sisestusrežiimist välja, siis lisatakse tekst ka kõigile teistele valitud ridadele. Kasutades "A" käsku saame valitud ristküliku taha meile vajalikku teksti sisestada. | Visuaalplokkrežiimi kasutades on üsna lihtne märgistatud ala igale reale tähemärke sisestada. Oletame, et oleme valinud ristküliku (CTRL-v), nüüd saame selle ette sisestada teksti vajutades "I" (lülita sisestusrežiimi). Kui lülitame end sisestusrežiimist välja, siis lisatakse tekst ka kõigile teistele valitud ridadele. Kasutades "A" käsku saame valitud ristküliku taha meile vajalikku teksti sisestada. | ||
Veel üks kasulik rakendus on terve ploki asendamine uue tekstiga. Selle jaoks tuleb valida plokk ja vajutada "s", Vim siseneb sisestusrežiimi ja uue teksti kirjutamine võib alata. Pärast sisestusrežiimist lahkumist sisestab Vim kirjutatud teksti järelejäänud ridadele. | Veel üks kasulik rakendus on terve ploki asendamine uue tekstiga. Selle jaoks tuleb valida plokk ja vajutada "s", Vim siseneb sisestusrežiimi ja uue teksti kirjutamine võib alata. Pärast sisestusrežiimist lahkumist sisestab Vim kirjutatud teksti järelejäänud ridadele. | ||
Teksti lisamiseks rea lõppu kasutatakse CTRL-v$ ja valitakse read, kuhu soovitatakse tekst sisestada. CTRL-v erineb eelnevast selle poolest, et ta opereerib tulpades ja ignoreerib eelnevalt sisestatud teksti. | Teksti lisamiseks rea lõppu kasutatakse CTRL-v$ ja valitakse read, kuhu soovitatakse tekst sisestada. CTRL-v erineb eelnevast selle poolest, et ta opereerib tulpades ja ignoreerib eelnevalt sisestatud teksti. [http://linuxconfig.org/Vim_Tutorial] | ||
[[File:vim5.JPEG]] | [[File:vim5.JPEG]] | ||
Line 123: | Line 126: | ||
Trükkides kasutame me sageli samu sõnu mitmeid kordi. CTRL-p käsk otsib just trükitud sõnade hulgast selliseid sõnu, mis algavad samade tähtedega. CTRL-x CTRL-l täidab kogu rea. | Trükkides kasutame me sageli samu sõnu mitmeid kordi. CTRL-p käsk otsib just trükitud sõnade hulgast selliseid sõnu, mis algavad samade tähtedega. CTRL-x CTRL-l täidab kogu rea. | ||
Õigekirjakontrolli saab lubada :set spell käsuga ja CTRL-x CTRL-k käsud kontrollivad üle ka varasemalt sisestatud sõnad. | Õigekirjakontrolli saab lubada :set spell käsuga ja CTRL-x CTRL-k käsud kontrollivad üle ka varasemalt sisestatud sõnad. | ||
Vim'i täiendussüsteemi on viimasel ajal jõudsalt edasi arendatud. | Vim'i täiendussüsteemi on viimasel ajal jõudsalt edasi arendatud. [http://blog.interlinked.org/tutorials/vim_tutorial.html] | ||
= Viited = | = Viited = | ||
Line 131: | Line 134: | ||
* http://www.truth.sk/vim/vimbook-OPL.pdf | * http://www.truth.sk/vim/vimbook-OPL.pdf | ||
* http://vimdoc.sourceforge.net/htmldoc/vimfaq.html#1.3 | * http://vimdoc.sourceforge.net/htmldoc/vimfaq.html#1.3 | ||
* http://linuxconfig.org/Vim_Tutorial | |||
* http://blog.interlinked.org/tutorials/vim_tutorial.html | |||
* http://vallaste.ee/index.htm | * http://vallaste.ee/index.htm | ||
Liis Mironova A22 05.11.2012 | Liis Mironova A22 05.11.2012 | ||
[[Category: Operatsioonisüsteemide administreerimine ja sidumine]] | [[Category: Operatsioonisüsteemide administreerimine ja sidumine]] |
Revision as of 19:02, 27 November 2012
Mis on VIM?
Vim on konfigureeritav tekstiredaktor, mille loojaks ja esmakordseks avaldajaks on Braam Moolenaar (aastal 1991). Selle eesmärgiks on võimaldada tõhusat teksti redigeerimist. Vim on täiustatud versioon VI redaktorist, mis käib kaasas enamike UNIX'i süsteemidega. Vim on kavandatud nii käsureal kasutamiseks kui ka eraldiseisva rakendusena - graafilise kasutajaliidesena. Vim on tasuta ja avatud lähtekoodiga tarkvara. Algselt oli Vim mõeldud Amiga personaalarvutitele, kuid nüüdseks on ta arendatud mitmeplatvormiliseks ja töötab ka mitmetel teistel platvormidel (Atari MiNT, BeOS, DOS, Microsoft Windows 95/98/Me/NT/2000/XP/Server 2003/Vista/Server 2008/7, IBM OS/2 and OS/390, MorphOS, OpenVMS, QNX, RISC OS, Unix, Linux, BSD, Mac OS). Vim'i nimetatakse tihtipeale programmeerijate redaktoriks, kuna see on programmeerimiseks väga kasulik ja üsna paljude jaoks on see lausa omaette IDE. Tegelikkuses ei ole Vim mõeldud vaid programmeerijatele. Vim'i on mugav kasutada igasugusteks teksti redigeerimisteks, e-kirjade loomisest kuni konfiguratsiooni failide muutmiseni, kuid samas tuleb meeles pidada, et tegemist ei ole tekstitöötlusprogrammiga. Vim'ist on ka Notepad'i-laadseid versioone - evim või Easy Vim, mida on väga lihtne konfigureerida. Vim on ühtlasi ka tööriist, mille kasutamist tuleb õppida. [1] Aastal 2006 hääletati Vim Linux Journal lugejate poolt kõige populaarsemaks redaktoriks. [2]
Vim'i eellugu
Bram Moolenaar alustas tööd Vim'i kallal aastal 1988 kui ta ostis endale Amiga personaalarvuti. Ta oli harjunud kasutama Unix'i redaktorit ja kuna Amiga jaoks puudus piisavalt hea Vi, siis hakkas ta täiustama parimat olemasolevatest - programmi nimega Stevie'i. Alguses oli Bram'i eesmärgiks imiteerida Vi'd. Pärast seda lisandusid Vi'le uued funktsioonid ja Vi IMitation'ist sai Vi IMproved. Nüüdseks on Vim pidevalt kasvanud ja sellest on saanud keeruline programm. Uute funktsioonide lisamiseks tuleb teha tunduvalt suuremaid jõupingutusi, kuid samas ootavad kasutajad püsivalt uusi vahendeid, millega Vim'i kasutamist ja selle võimalusi efektiivsemaks muuta. [3]
Liides
Nagu Vi liides, ei baseeru ka Vim'i liides menüüdel või ikoonidel, vaid tekstipõhisesse kasutajaliidesesse sisestatud käskudel; selle graafiline liides, gVim, lisab menüüd ja tööriistaribad kõige sagedamini kasutatavatele käskudele, kuid täielik funktsionaalsus on siiski kättesaadav käsurealt. Vim'il on sisse-ehitatud õpetused algajatele, mis on kättesaadavad "vimtutor" käsuga. Veel on abiks ka Vim Users' Manual, mis täpsustab funktsioone ja on leitav Vim'ist ning Internetist. Vim'il on veel ka sisse-ehitatud abivahend, millele pääseb ligi ":help" käsuga, mis võimaldab kasutajal pärida ja navigeerda käskudes ja funktsioonides. [4]
Kohandamine
Vim'i suureks eeliseks on see, et teda saab laialdaselt kohandada. Põhiliidest on võimalik juhtida paljude olemasolevate valikute abil ja samas saab kasutaja defineerida personaliseeritud klahvivastendusi, mida tihtipeale nimetatakse makrodeks või lühenditeks, mis automatiseerivad klahvivajutusi, või isegi kutsuvad esile sisseehitatud või kasutaja poolt määratletud funktsioone. Saadaval on mitmeid pistikprogramme, mis laiendavad või lisavad Vim'ile uusi funktsioone. Need keerulised skriptid on tavaliselt kirjutatud Vim'i siseskriptimiskeeles vimscript'is. Vim toetab skriptimist kasutades Lua'd, Perl'i, Python'it, Racket'it, Ruby't ja Tcl'i. On projekte, mis panevad kokku keerukaid skripte ja kohandusi ning muudavad Vim'i tööriistaks, mis täidab mõnda kindlat ülesannet või muudavad suuresti Vim'i käitumist. Näiteks Cream, mis paneb Vim'i käituma kui "kliki ja kirjuta" redaktori.
Funktsioonid ja täiustused võrreldes Vi'ga
Vim'il on Vi ühilduvus töörežiim, kuid kui Vim pole parajasti eelnevalt mainitud režiimis, siis tal on Vi ees nii mõningaid eeliseid. Ometi ei ole Vim ka ühilduvus töörežiimis Vi'ga 100% ühilduv. Mõned Vim'i täiustustest: failide täiendamine, võrdlemine ja ühinemine (vimdiff), kõikehõlmav integreeritud abisüsteem, laiendatud väljendid, skriptimiskeeled (nii algupärased kui ka alternatiivsed interpretaatorid - Perl, Python, Ruby, Tcl jne), pistikprogrammide toetus, graafiline kasutajaliides (qvim), piiratud integreeritud arenduskeskkonna-laadsed funktsioonid, hiire kasutamine nii graafilise kasutajaliidesega kui ka ilma, pakitud või arhiveeritud gzip, bzip2, zip, tar failide muutmine ja toimetamine läbi SSH, FTP ja HTTP võrguprotokollide, sessiooniolekute säilitamine, õigekirja kontrollimine, unicode ja mitmekeelsuse toetus, süntaksi esile tõstmine, otsing, kursori positsioonide ajalugu, mitmetasandiline undo/redo ajalugu, mis võib püsida ka sessioonide muutudes ja visuaalne töörežiim.[5]
Vim'i kasutamine
Käivitamine
Lihtsamad käivitamiskäsud:
- vim - käivita redaktor tühja puhvriga
- vim minufail.txt - käivita redaktor ja ava või loo (kui faili pole varem loodud, luuakse automaatselt uus) fail nimega minufail.txt
- vim minufail1.txt minufail2.txt minufail3.txt - käivitatakse redaktor ja avatakse või luuakse kõik failid nimedega minufail1.txt, minufail2.txt, minufail3.txt, vaikimisi näidatakse esimesena minufail1.txt'd
Töörežiimid
Vim'il on kolm erinevat töörežiimi:
- käsu töörežiim (command mode) - kõik klahvivajutused tõlgendatakse käskudena
- sisestus töörežiim (insert mode) - enamus klahvivajutustest sisestatakse tekstina
- visuaalne töörežiim (visual mode) - aitab visuaalselt teksti valida ja on ühtlasi käsu töörežiimi alamrežiim
Vim'is on mitteteadjal kasutajal väga kerge endale "käkki kokku keerata", seega tuleb teada, kuidas Vim'ist lahkuda muutusi salvestamata. Selleks tuleb olla käsurežiimis, vajutada "ESC" klahvi ja väljumiseks sisestada :q!
Sisestus ja visuaalsest režiimist käsurežiimi liikumiseks tuleb vajutada "ESC" klahvi.
Käsu töörežiimist sisestusrežiimi:
- i - lülita sisestusrežiimi enne praegust positsiooni
- a - lülita sisestusrežiimi pärast praegust positsiooni
- I - hüppa esimesele mittetühjale tähemärgile sellel real ja lülita sisestusrežiimile
- A - hüppa viimasele tähemärgile sellel real ja lülita sisestusrežiimile
Käsu töörežiimist visuaalrežiimi:
- v - lülita visuaalrežiimi (tähemärgile orienteeritud)
- V - lülita visuaalrežiimi (reale orienteeritud)
- CTRL-v - lülita visuaalplokkrežiimi (vali tekst ristkülikutena)
Liikumine
Kõige lihtsamad liikumiskäsud:
- h - liigu vasakule
- l - liigu paremale
- j - liigu üles
- k - liigu alla
Need käsud töötavad vaid käsurežiimis, kuid kõigis kolmes režiimis võib kursori liigutamiseks kasutada ka nooleklahve (aeglasem variant).
Mõned tähtsamad käsud, mis on paljude teiste käskude aluseks:
- 0 - liigu rea algusesse
- ^ - liigu esimese mittetühja tähemärgini reas
- w - hüppa järgmise sõnani
- W - hüppa järgmise sõnani, ignoreeri kirjavahemärke
- e - hüppa sõna lõppu
- E - hüppa sõna lõppu, ignoreeri kirjavahemärke
- b - hüppa sõna algusesse
- B - hüppa sõna algusesse, ignoreeri kirjavahemärke
- ge - hüppa eelmise sõna lõppu
- gE - hüppa eelmise sõna lõppu, ignoreeri kirjavahemärke
- g_ - hüppa viimase mittetühja tähemärgini reas
- $ - hüppa viimase tähemärgini reas
Liikumist saab kombineerida ka numbritega. Nt. 3w - hüppa 3x järgmise sõnani (sama tulemuse saab 3 korda järjest w'd vajutades). Vahel on vaja ühte märki mitu korda kasutada. Nt. 30i- "ESC" annab tulemuseks ------------------------------ ja selleks ei ole vaja 30 korda - vajutada. Kui midagi läheb valesti, siis saab alati kasutada undo'd/redo'd käsurežiimis käsuga "u", isegi undo'd on võimalik tagasi võtta kasutades CTRL-r käsku.
Redigeerimine
Nagu eelnevalt mainitud tuleb teksti sisestamiseks minna sisestusrežiimi kasutades käsku "i".
- d - kustuta tähemärgid kursori positsioonist kuni järgmise käsu poolt antud positsioonini (nt. d$ kustutab kõik tähemärgid kursori positsioonist kuni viimase veeruni reas)
- dw - kustuta sõna
- c - muuda tähemärki kursori positsioonist kuni järgmise käsu poolt antud positsioonini
- x - kustuta kursori all olev tähemärk
- X - kustuta tähemärk enne kursorit (töötab nagu Backspace klaviatuuril)
- y - kopeeri tähemärgid kursori positsioonist kuni järgmise käsu poolt antud positsioonini
- p - kleebi eelnevalt kustutatud või kopeeritud tekst pärast kursori positsiooni
- P - kleebi eelnevalt kustutatud või kopeeritud tekst enne kursori positsiooni
- r - asenda praegune tähemärk uuega (mis sisestatakse)
- s - asenda tekst kursori positsioonist kuni järgmise käsu poolt antud positsioonini uuega (mis sisestatakse)
- . - korda viimati sisestatud või muudetud käsku (x, d, p, ..)
d, c või y dubleerimine avaldab mõju kogu reale. Nt. yy kopeerib kogu rea. Muudetud faili salvestamiseks ja Vim'ist lahkumiseks kasutatakse käsurežiimis :wq käsku või SHIFT+zz.
Visuaalne plokk režiim
Visuaalplokkrežiimi kasutades on üsna lihtne märgistatud ala igale reale tähemärke sisestada. Oletame, et oleme valinud ristküliku (CTRL-v), nüüd saame selle ette sisestada teksti vajutades "I" (lülita sisestusrežiimi). Kui lülitame end sisestusrežiimist välja, siis lisatakse tekst ka kõigile teistele valitud ridadele. Kasutades "A" käsku saame valitud ristküliku taha meile vajalikku teksti sisestada. Veel üks kasulik rakendus on terve ploki asendamine uue tekstiga. Selle jaoks tuleb valida plokk ja vajutada "s", Vim siseneb sisestusrežiimi ja uue teksti kirjutamine võib alata. Pärast sisestusrežiimist lahkumist sisestab Vim kirjutatud teksti järelejäänud ridadele. Teksti lisamiseks rea lõppu kasutatakse CTRL-v$ ja valitakse read, kuhu soovitatakse tekst sisestada. CTRL-v erineb eelnevast selle poolest, et ta opereerib tulpades ja ignoreerib eelnevalt sisestatud teksti. [6]
Tekst-objektid
Vim'i käsud opereerivad tekst-objektidega, milleks on tähemärgid; sõnad; tähemärgid, mis on piiritletud sulgudega; laused jne.
- iw - seesmine sõna (inner word)
- aw - a-sõna (a word)
- iW - a-seesmine SÕNA (a WORD)
- is - seesmine lause (inner sentence)
- as - a-lause (a sentence)
- ip - seesmine lõik (inner paragraph)
- ap - a-lõik (a paragraph)
- i( või i) - seesmine plokk (inner block)
- a( või a) - a-plokk (a block)
- i< või i> - seesmine plokk (inner block)
- a< või i> - a-plokk (a block)
- i{ või i} - seesmine plokk (inner block)
- a{ või a} - a-plokk (a block)
- i" - seesmine plokk (inner block)
- a" - a-plokk(a block)
- i` - seesmine plokk(inner block)
- a` - a-plokk (a block)
Seesmine variant valib ainult sisu nt. tähemärgid sõnast ilma tühikuteta või sulgude sees oleva sisu ilma sulgudeta. A-variant valib nii sulud kui ka tühikud pärast sõnu.
Otsimine
Otsimine Vim'is on väga lihtne. Selleks tuleb käsurežiimis trükkida "/" ja sisestada termin, mille kohta soovime täiendavat infot. Vastupidises suunas otsimiseks kasutatakse "?", otsingu kordamiseks "n", otsingu kordamiseks vastupidises suunas "N". Kui valik "incsearch" on aktiivne, siis liigub Vim koheselt sobiva tekstini kui midagi parasjagu trükitakse. Kui aktiivseks valikuks on "hlsearch", siis tuuakse esile kõik sobivad vasted. Esile toomise saab deaktiveerida ":nohl" käsuga.
Täiendamine
Trükkides kasutame me sageli samu sõnu mitmeid kordi. CTRL-p käsk otsib just trükitud sõnade hulgast selliseid sõnu, mis algavad samade tähtedega. CTRL-x CTRL-l täidab kogu rea. Õigekirjakontrolli saab lubada :set spell käsuga ja CTRL-x CTRL-k käsud kontrollivad üle ka varasemalt sisestatud sõnad. Vim'i täiendussüsteemi on viimasel ajal jõudsalt edasi arendatud. [7]
Viited
- http://vim.sourceforge.net/about.php
- http://www.linuxjournal.com/article/8520?page=0,3
- http://moolenaar.net/vimstory.pdf
- http://www.truth.sk/vim/vimbook-OPL.pdf
- http://vimdoc.sourceforge.net/htmldoc/vimfaq.html#1.3
- http://linuxconfig.org/Vim_Tutorial
- http://blog.interlinked.org/tutorials/vim_tutorial.html
- http://vallaste.ee/index.htm
Liis Mironova A22 05.11.2012