Hlavní navigace

Ako na vlastný help vo VIMe

i4o

Určite ste si niekedy chceli zapísať užitočný príkaz, či tipy alebo skúsenosti pri práci s utilitou, ktorých je *nix taký plný. Možno si to zapisujete do textového súboru, ako som to robil ja. Po čase som nadobudol neurčitý pocit, že moje zápisky su neprehľadné a potrebujú systém(TM).

Nemal som vysoké nároky, stačila mi možnosť skákať v texte na základe nejakej obdoby A tagu v html. Prvé ma napadlo html, potom GNU info. Oba formáty su šikovné, no vyžadovali na môj vkus priveľa nepotrebného formátovania a externý prehliadač. Kedže mojím editorom je Vim, nemohol som nepostrehnút, že po zadaní

:help prikaz

dostanem rýchlu nápovedu na prikaz. Ak samozrejme nepoužívate Vim tak intenzívne ako ja, asi to nebude pre Vás to pravé orechové ;-). Tento článok ďalej vysvetľuje, ako si takýto help vytvoriť.

Budem vytvárať iba modelový help pre príkazy ps a ls. Okrem toho ešte stránku s obsahom. Doporučené umiestnenie súborov je v adresári ~/.vim/doc/ . Ďalšia možnosť je $VIMRUNTIME/doc , ale tu sa nachadzajú súbory originálneho Vim helpu a pri inštalácii novej verzie sa môže stať, že niektorý z Vašich súborov-pomocníkov bude prepísaný. Súbory majú koncovku .txt, aby ich rozpoznal Vim pri automatickom vytvoreni suboru tag-ov.

Dosť rečí, obsah.txt, ls.txt a ps.txt nasledujú, potom to vysvetlím:

---obsah.txt---

OBSAH:  obsah

Tabulka č. 236
1. ls |ls|
2. ps |ps|

---ls.txt---

Ako pouzivat prikaz ls  ls
  ls -al
-a … vypise vsetky subory
-l … dlhy a nezrozumitelny ;-)
|obsah|

---ps.txt---

Ako pouzivat prikaz ps     ps
  ps -axuww
-axuww … vsetko mozne a cely nazov

|obsah|

--- koniec vypisov ---

Obidva subory obsahujú skoky. Text na ktorý chceme skočiť je uzatvorený v , konkrétne. ls, obsah, *ps. Takto to robí Vim help, Vy si môžete text označiť aj inak, ale budete si musiet ‚tags‘ súbor vytvorit ručne. Miesto skoku, link ( v html obvykle modrý a podčiarknutý text ) je vo Vim helpe obvykle označený PIPE symbolom z oboch strán. Napr. |obsah|, |ls|, |ps|. Nemusí to byť označené pajpami, stači aj text ls a skok sa uskutoční, no takto je zrejmé, že sa jedná o link.
Keď som spomenul ‚tags‘ súbor, asi by som vysvetliť, ako to skákanie vlastne sprevádzkovať.
V adresári, kde sú help súbory, musí byť súbor ‚tags‘. Súbor ma jednoduchú syntax:

tag   subor.txt  umiestnenie

Pričom tag je názov tag-u, subor.txt je súbor, v ktorom sa tag nachádza a umiestnenie je presná poloha v spomenutom súbore. V našom prípade by tags vyzeral takto:

Tabulka č. 237
ls ls.txt /ls
obsah obsah.txt /obsah
ps ps.txt /ps

Možnosť použiť na označenie umiestnenia Ex príkazy nám prácu značne zjednodušuje. Stačí ako umiestnenie použiť príkaz na hľadanie textu : /text a miesto kam skočiť je presne označené. Mimochodom – súbor tags musí byť zoradený podľa abecedy, tu poslúži sort.
Teraz sa už ku svojmu obsahu dostanete príkazom vo Vim-e:

:help obsah

Súbor s tagmi si môžete podstatne jednoduchšie vytvoriť príkazom:

:helptags ~/.vim/doc

To platí iba v prípade, že Váš help sa nachádza v adresári ~/.vim/doc , ak používate označenie tagov pomocou hviezdičiek (ls) a Vaše súbory majú koncovku ‚.txt‘.
Ešte upozornenie. Všetky súbory s Vašimi helpmi sa musia nachádzať v jednom adresári. Nie je možné vytvárať adresárovú štruktúru. Tiež si treba dať pozor na možnú kolíziu názvov súborov a tag-ov s originálnym helpom. Celé je to jeden názvový priestor. Na tieto kolízie Vás :helptags upozorní, ale možno by bolo rozumné zaviesť si názvy v štýle X_obsah, X_ls alebo niečo podobné.
Snáď som nič nezabudol, možno som nemal považoval za samozrejmé, že viete ako sa pohybovať v helpe. Ak nie, viď:

:h help
Našli jste v článku chybu?