Editor vim - základy
Editor vim
je nejrozšířenější a textový editor v Linuxu.
Jeho ovládání je poněkud nezvyklé, ale když se jej naučíte,
je práce s ním velice efektivní.
VIM pracuje jak v konzoli, tak existuje jeho grafická podoba gvim
.
S obojím se pracuje stejně, jen gvim
má menu, kde si můžete
některé věci naklikat.
Základní módy editoru
VIM se může nacházet v několika módech. Po spuštění editoru se dostanete do
příkazového módu, kde stisky klávesnice neprodukují text (jak by
jste od textového editoru očekávali), ale reprezentují se jako příkazy.
Jedním z příkazů je například i
, který změní mód editoru na
vkládací mód.
Vkládací mód je ten nejednodušší a nejpřímočařejší mód.
Stisknete klávesu a ona se napíše. Zpět do příkazového módu se přepnete
pomocí klávesy Escape
.
Dalším módem je tzv. ex mód
. Ten umožňuje zadávat
příkazy editoru ex
, na kterém je vim
postaven.
(Editor ex
se vyvinul z editoru ed
).
Do ex módu
se dostanete z příkazového módu stiskem dvojtečky. Na poslední řádce v editoru
v levém rohu uvidíte dvojtečku a můžete zapisovat příkazy.
Krom toho existuje ještě visuální mód
, který
umožňuje označovat bloky textu a pracovat s nimi. Do toho se dostanete
z příkazového módu například stiskem klávesy v
.
Příkazový mód
Pokud spustíte VIM příkazem vim
, dostanete se do příkazového
módu. Tento mód je pro začátečníky tak trochu jako minové pole. Jakákoliv
klávesa může vyvolat nečekanou reakci.
Z vkládacího módu se dostanete do příkazového klávesou Escape
.
Z visuálního módu se dostanete do příkazového klávesou v
, nebo zuřivým
mačkáním Escape
.
Příkazový mód se většinou používá pro navigaci (například vyhledávání ukončovacích závorek ve zdrojovém kódu, přechod na první, poslední nebo n-tou řádku, přechod na další odstavec atd), hromadné akce (například smazání 10 řádek, kopírování a nebo přesun řádek), k přechodu do ex a visuálního módu atd.
Toho, co se dá dělat v příkazovém módu je opravdu nepřeberné množství. Pokud nechcete, nemusíte se naučit víc, než bude popsáno v této kapitole. Ale každý příkaz, který se naučíte, vám jen usnadní práci.
Aby vám VIM byl opravdu pomocníkem, musíte ho především používat, aby se vám všechny naučené příkazy dostali tak říkajíc do krve. Pokud s VIMem budete pracovat jen občas, nejspíš si příkazy nikdy pořádně nezapamatujete, jejich hledání vám bude jen zabírat čas, takže pro vás nebude VIM o nic lepší než obyčejný notepad z Windows. (Ale i tak má smysl se s ním naučit pracovat, protože je to prakticky jediný slušný textový editor, který navíc pracuje i v konzoli, který najdete v Linuxu téměř vždy.)
Vkládací mód
Ve vkládacím módu píšete. Nic moc více se o něm nedá říct. Dostanete se do něj z příkazového módu hned několika
příkazy: a
, A
, i
, I
, o
, O
, nebo R
.
Popis těchto příkazů a čím se liší bude následovat.
Ve vkládacím módu uvidíte na poslední řádce v editoru -- INSERT --
nebo -- REPLACE --
(podle toho,
jestli se bude vkládat nový text, nebo se bude přepisovat už existující.
Zpět do příkazového módu se dostanete klávesou Escape
.
Visuální mód
Visuální módy existují dva. Do jednoho se dostanete klávesou v
,
do druhého klávesovou zkratkou CTRL+v
. Z prvního utečete
znovu pomocí klávesy v
, z druhého pomocí CTRL+v
,
nebo pomocí v
přejdete do prvního a druhým v
definitivně
utečete.
Ve visuálním módu uvidíte na poslední řádce v editoru -- VISUAL --
,
v druhém případě -- VISUAL BLOCK --
.
K čemu je visuální mód potřeba se dozvíte později. Nedočkavci se mohou podívat na video.
Ex mód
Někteří lidé nerozlišují mezi příkazovým módem a ex módem. Do ex módu se dostanete zadáním dvojtečky v příkazovém režimu, takže to berou jen jako další příkaz z příkazového režimu.
Kvůli své historii a kvůli tomu, že po stisku dvojtečky vidíte dvojtečku a vše další co píšete na posledním řádku, tak to beru (a nejen já) jako další mód VIMu. V zásadě je asi jedno, jak tomu kdo říká, hlavní je, že si rozumíme :-).
Nejzákladnější příkaz ex módu je q
(quit). Tím editor opustíte.
Ti, co považájí ex mód jen za další příkazy příkazového režimu by asi napsali
:q
, aby bylo jasnější, že ... jde o ex mód ... :D
Ale vážně, asi je to opravdu čitelnější, méně matoucí a jednodušší, když se ty příkazy píšou i s dvojtečkou, takže to tak budu taky psát. A alespoň nebudu muset opakovat, že se jedná o ex příkaz.
Příkazy ex módu se spustí, poté co je napíšete, klávesou Enter. Klávesou Backspace můžete celý příkaz smazat a když smažete i dvojtečku, dostanete se zpět do příkazového režimu, aniž byste vykonali nějaký ex-příkaz.
Vyhledávání
Když už píši o ex módu, ještě bych měl tak bokem zmínit, že se dá v editoru i vyhledávat.
Vyhledávání se začíná zapsáním lomítka /
(v příkazovém režimu, ve vkládacím byste
napsali jen lomítko, samozřejmě …). Pak zadáte text, který chcete najít a stisknete
Enter. Vyhledávání v opačném směru se dělá pomocí otazníku ?
.
První příklad
Když už víte, jak editor VIM pracuje, je na čase si jej vyzkoušet.
Řešení problémů
Pokud se dostanete do situace, že nevíte kde jste a co dělat (a to se začátečníkům může stát), pokuste se nejdřív přijít na to, v jakém režimu editoru jste. To vám může napovědět, jak se dostat zpět do režimu, který chcete.
Pokud stále nevíte kde jste a co dělat, zkuste nejdříve zuřivě mačkat Escape. Když to
nepomůže, zkuste zadat :q!
. To je příkaz, kterým opustíte editor (nebo
něco co jste v editoru spustili, jako například nápovědu).
Pořád nic nepomáhá? Tak uspěte editor zkratkou CTRL+z
. Editor se uspí
a vy se dostanete zpět do shellu. Odtud můžete editor znovu spustit příkazem fg
(ale tím si nepomůžete), nebo jej zabít příkazem killall -9 vim
(tím ale zabijete
všechny spuštěné instance vimu!)
Po takto násilném ukončení programu může zůstat na disku odkládací soubor, se jménem
.jmenosouboru.txt.swp
(tečka, jméno editovaného souboru a koncovka .swp
).
Pokud se pokusíte otevřít stejný soubor, který jste editovali, vim vás upozorní že tento odkládací
soubor už existuje a zeptá se vás, co chcete udělat. Nejrozumější je většinou buď zkončit (to v případě,
že máte soubor otevřený v jiné běžící instanci VIMu), nebo soubor opravit (repair), čímž se
do otvíraného souboru promítnou neuložené změny (uložené jen v odkládacím souboru (swapu), ale ne v editovaném souboru).
Pokud se rozhodnete soubor opravit, musíte po ukončení VIMu tak jako tak odkládací soubor
smazat ručně (příkazem rm
). (Jeden by čekal, že ho VIM smaže, když už ho použil k opravě.
Normálně odkládací soubor po ukončení práce maže).
Spuštění VIMu
Editor vim
spustíte příkazem vim
. Krom toho mu můžete
zadat na příkazovou řádku jména souborů, které chcete editovat. (A spousty dalších voleb).
SYNOPSIS
vim [-r] [soubor] vim [{+[n]|+/search}] [-p] [soubor ...] view soubor vimtutor
Příkaz view
otevře soubor jen pro čtení (read-only).
To je výhodné hlavně u velkých souborů, protože se pro ně nebude dělat
(velký) odkládací soubor (swap).
Příkaz vimtutor
otevře VIM s výukovým textem (v češtině).
vimtutor
. Nebudu zde popisovat to, co je v něm popsáno.
Další texty v mém tutoriálu už budou většinou jen tupým seznamem příkazů a různých
konfiguračních voleb VIMu. Abyste jim rozuměli, měli byste mít znalosti
na úrovni tutoriálu z vimtutor
.
OPTIONS
- -r
- Vypíše seznam souborů, které nebyli korektně ukončeny. Se jménem souboru se pokusí daný soubor otevřít a opravit.
- +[n]
- Otevře soubor na n-tém řádku. Pokud není
n
zadáno (jen plus), otevře ho na posledním řádku - +/search
- Spustí na prvním řádku obsahujícím řetězec. Řetězec se může dál hledat příkazy n (dopředu) či N (vzad)
- -p
- Zobrazí záložky souborů
Psaní textu
Přejděte do vkládacího režimu některým z následujících příkazů. Všechny (až na malé r) zapnou vkládací režim, liší se jen tím, kam umístí kurzor.
- a
- Kurzor se posune za znak, nad kterým je.
- i
- Kurzor se posune před znak, nad kterým je.
- A
- Kurzor se pousne na konec řádku.
- I
- Kurzor se posune na začátek řádku.
- o
- Vloží se nová řádka pod řádku s kurzorem.
- O
- Vloží se nová řádka pod nad řádku s kurzorem.
- R
- Jako
i
, ale zapne REPLACE mód. Mezi INSERT a REPLACE módem se přepíná klávesouInsert
. - r
- Tímto znakem se nepřejde do vkládacího režimu. Umožňuje jen
změnit jedno písmeno pod kurzorem (třeba
rc
změní písmeno pod kurzorem nac
). Nové písmeno může být libovolný znak, včetně znaku nového řádku.
Až vás přestane bavit psaní, stiskněte Escape
pro návrat
do příkazového režimu.
Escape
můžete použít Ctrl+c
.
Všiměte si, že vám stačí znát jen jeden příkaz pro přechod do vkládacího režimu (třeba i
).
Znalost těch dalších vám jen zpříjemní práci. A tak je to ve VIMu se vším …
Učte se VIM po douškách, nemusíte umět zpaměti hned vše. Ale své znalosti se vytrvale snažte rozšiřovat.
Nesmíte ustrnout jen s jedním příkazem, jinak VIM nikdy nedoceníte …
Ukončení VIMu
Nejdříve byste měli uložit změny. K tomu slouží příkaz :w
(tedy příkaz
w
z ex módu).
- :w
- Uloží buffer (načtený obsah soubor) do otevřeného souboru
- :w jmeno.txt
- Uloží buffer (načtený obsah souboru) do souboru
jmeno.txt
. Pokud pracujete jen s bufferem (neotevřeli jste žádný soubor), VIM pracuje nadále se souborem, do kterého jste buffer uložili.
Pokud ale máte otevřený jiný soubor, než do kterého jste buffer zapsali, VIM dále pracuje s aktuálně otevřeným souborem (který zůstává neuložený). - :w! jmeno.txt
- Zapíše buffer do souboru
jmeno.txt
, i když existuje (vykřičník donutí VIM soubor přepsat)
Když je soubor uložen, je možné editor opustit příkazem :q
.
Pokud chcete editor opustit a změny neuložit (zahodit), opustíte jej
příkazem :q!
.
Pokud jste otevřeli více souborů najednou, pak opustíte editor jen za pomoci vykřičníku
(:q!
), nebo musíte prolistovat i další soubory. Na další soubor
se dostanete příkazem :n
, resp. :n!
, pokud
nechcete ukládat změny v aktuálním bufferu.
Příkazy v ex módu můžete (někdy) i zřetězit. Například pro uložení souboru
a ukončení editoru stačí zadat :wq
, pro uložení souboru a přechod na další
soubor :wn
atp.
ZZ
(dvě velké Z) udělá totéž co :wq
– zapíše
změny a ukončí editor. (Všiměte si, že před ZZ není dvojtečka. Jedná se skutečně
o příkaz v příkazovém módu a ne v ex módu).
A to je asi tak vše, co potřebujete do začátku o editoru VIM vědět. Teď už se
v Linuxu nemusíte bát editovat žádný textový soubor. Pokud jste si ještě
nespustili vimtutor
, tak si ho spusťte. V následujících kapitolách
budou jen stručně popisovány všelijaké vychytávky. Na internetu najdete
spousty dalších návodů a vychytávek pro editor VIM, tak googlete, zkoušejte a učte se.
Ono se vám to vrátí.
Než se pustíte do hlubšího zkoumání editoru VIM, možná byste se mohli podívat na editor Emacs.