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 fileformat=unix
: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 fileformat=unix
. 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.
Nechat si postupně nabízet možnosti je příjemné, ale podle mého soudu je ještě
příjemnější vybírat je z menu. To zajistí konfigurační příkaz
:set wildmenu
. Místo aby jednotlivé varianty
zobrazoval postupně, rovnou z nich vytvoří vodorovné menu nad příkazovým
řadkem – asi takto:
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]
.
© 2016 Pavel Satrapa