Konfigurační soubory
Každý slušný program lze konfigurovat. Cílem je, aby uživatel mohl upravovat jeho chování a vybrat z nabízených možností ten model, který mu vyhovuje nejlépe.
V případě vim je konfigurace několikaúrovňová a vychází z konfiguračních souborů. Jedná se o běžné textové soubory, obsahující příkazy vim (jedná se o Ex-příkazy, tedy takové, které zapisujete na příkazový řádek). Při startu editoru dojde k jejich automatickému provedení, jako byste je pokaždé napsali na klávesnici. Jediným rozdílem je, že do konfiguračních souborů se příkazy zapisují bez úvodní dvojtečky.
Pracujete-li v Unixu, načte se nejprve systémový konfigurační soubor. Jeho
jméno vám sdělí výstup příkazu :version
, nicméně
zpravidla se jedná o /usr/share/vim/vimrc
nebo
/usr/local/share/vim/vimrc
. Tento soubor udržuje správce systému a
nastavení z něj jsou globální pro všechny. Je vhodné zahájit jej příkazem set nocompatible
, jinak se bude zpracovávat v režimu
kompatibilním s vi.
Následuje uživatelská konfigurace, která může pocházet ze čtyř míst. Použije se první existující místo, zbylá jsou ignorována:
- proměnná prostředí
VIMINIT
, - uživatelský soubor
vimrc
, jeho jméno také prozradí:version
, nicméně bývá to$HOME/.vimrc
,$HOME/_vimrc
či (v MS-DOSu)$VIM/_vimrc
, - proměnná prostředí
EXRC
, - uživatelský soubor
exrc
.
Třetím krokem pak může být inicializace lokální pro adresář. Její přípustnost
řídí volba exrc
. Pokud je zapnuta (:set exrc
), hledá v aktuálním adresáři soubory
.vimrc
, _vimrc
, .exrc
či
_exrc
. První existující použije, ostatní ignoruje.
Při vypnuté volbě exrc
(což je implicitní stav) se
na tyto lokální soubory nebere ohled. Důvodem je pochopitelně bezpečnost.
Pomocí vykřičníku můžete totiž v rámci inicializace spustit i externí příkazy.
Kdybyste si pak editor spustili v aresáři, ve kterém někdo připravil
destruktivní falešný inicializační soubor, mohli byste splakat nad
výdělkem.
Druhou úroveň ochrany před nebezpečnými lokálními konfiguracemi představuje
volba secure
. Když už pomocí :set exrc
povolíte lokální konfigurace, uvažujte o
omezení jejich možností pomocí :set secure
.
Pokud je tato volba zapnuta (implicitně není), je v lokálních
konfiguračních souborech zakázáno:
- provádět externí příkazy,
- zapisovat do souborů,
- definovat automatické příkazy (kterými by se daly zlé příkazy odložit na později).
Navíc se zobrazují provedené mapovací příkazy. Před ošklivostmi jste tedy poměrně slušně chráněni.
Jak je vidět, autoři vi se zabývali ochranou před makroviry již v době, kdy jistí nejmenovaní vizionáři ještě neměli tušení, co to je textový editor.
Příklad:
Můj konfigurační soubor vypadá asi takto:
set nocompatible set exrc set history=1000 set backspace=2 set nojoinspaces set ruler set showcmd set showmatch set hlsearch set smartindent set shiftwidth=4 set smarttab set expandtab set textwidth=79 set wildmenu set background=dark syntax on
Pokud startuje verze editoru pro grafické uživateské rozhraní, následuje ještě
jeho inicializace. Víceméně se opakuje výše popsaný postup, ale jako jméno
souboru se místo vimrc
používá gvimrc
. Podrobnější
popis najdete v kapitole o grafické verzi editoru.
© 2016 Pavel Satrapa