Editor příkazového řádku

Často se vám stane, že byste chtěli znovu použít některý z předchozích Ex-příkazů. Nebo jej lehce upravit. Zejména při ladění složitějších nahrazovacích příkazů je taková potřeba takřka bytostná. vim nabízí pomocnou ruku.

Má totiž vestavěn editor příkazového řádku. Chová se tak, jak jsme u podobných nástrojů zvyklí - umí vyvolávat dříve používané příkazy, dovolí vám po nich šmejdit kurzorem a upravovat je a dokoce dovede i doplňovat názvy souborů či jiných objektů.

Základními nástroji pro pohyb v historii příkazů jsou klávesy [šipka nahoru] a [šipka dolů]. Jejich prostřednictvím můžete vyvolávat starší či novější příkazy. Kapacita historie je dána volbou history. Například příkazem :set history=50 nařídíte, aby si editor pamatoval padesát příkazů.

Pokud napíšete začátek příkazu a pak stisknete [šipku nahoru], bude vim nabízet jen ty zapamatované příkazy, které začínají vámi zadaným řetězcem. Tím lze putování historií podstatně urychlit.

Příklad:
Řekněme, že konvertujete skupinu souborů z textového formátu MS DOSu do Unixu a nemáte po ruce nic vhodnějšího, než vim. Klasickým postupem je spustit vim *.txt a pro každý ze souborů pak provést trojici příkazů
:set notextmode
:w
:n
U prvního souboru je budete muset vypsat, ale u dalších pak stačí již pouhá sekvence :s[šipka nahoru] a na příkazovém řádku se objeví celý příkaz :set notextmode. Stejného výsledku dosáhnete trojím stisknutím klávesy [šipka nahoru].
V rámci řádku se pak můžete pohybovat kurzorovými klávesami [doleva] a [doprava]. Chování editoru připomíná vkládací režim. Píšete-li viditelné znaky, vsouvají se do řádku, [Backspace] maže znak před kurzorem atd. atp.

Kromě příkazového řádku můžete stejný editor používat i pro vyhledávané vzory, výrazy a vstupní řádky funkce input(). Každá z těchto čtyř kategorií má svou vlastní historii a nemíchá se s ostatními.

Doplňování

Moc milou věcičkou je automatické doplňování názvů souborů, voleb a dalších konstrukcí. Nebudu dlouho chodit kolem horké kaše a namlsám vás příkladem.
Příklad:
Zadejte :e (za "e" je mezera) a stiskněte [Tab]. Editor pípne a nabídne vám jméno prvního souboru z aktuálního adresáře. Když [Tab] opakujete, nabízí další a další soubory.
Klávesa [Tab] totiž aktivuje automatické doplnění právě rozepsaného slova. vim dovede doplňovat
  • jména příkazů
  • jména hesel
  • jména souborů
  • jména voleb
Chová se inteligentně - doplňované objekty vybírá podle pozice, kde se momentálně nachází kurzor. Například ve výše uvedeném příkladu byl kurzor na pozici parametru příkazu :e, kterým má být jméno souboru. Proto se nabízely názvy souborů. Kdybyste místo :e zahájili příkaz :set , nabízel by názvy voleb.

Když zadáte počáteční znaky, nabízí editor pouze jména, která začínají uvedeným řetězcem. Vyhovuje-li jediné, bude doplněno. Jestliže existuje několik vyhovujících alternativ, vim pípne (aby upozornil, že by cosi mohlo drhnout) a doplní první vyhovující jméno. Pokud vám nevyhovuje, stiskněte [Tab] znovu a dostanete další. A tak dále pořád dokola.

Klávesou Ctrl-D si vypíšete všechna vyhovující jména, takže budete mít přehled. Pomocí Ctrl-N a Ctrl-P můžete poskakovat mezi jednotlivými možnostmi.

Automatické doplňování ve skutečnosti není pevně svázáno s klávesou [Tab]. Například původní editor vi k tomuto účelu používal Ctrl-E a stejně se chová i vim, pokud pracuje v (implicitním) kompatibilním režimu. Klávesu, která má aktivovat automatické doplnění určuje volba wildchar. Například po provedení :set wildchar=<F5> bude doplňovat funkční klávesa [F5].

<-- predchozi  [obsah]  dalsi -->
© 1997, 1998 Pavel Satrapa