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:

  1. proměnná prostředí VIMINIT
  2. 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
  3. proměnná prostředí EXRC
  4. 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 backspace=2
set expandtab
set exrc
set secure
set gdefault
set history=100
set hlsearch
set ignorecase
set nojoinspaces
set ruler
set shiftwidth=3
set showcmd
set showmatch
set smartindent
set smarttab
set textwidth=79
set visualbell

noremap Q gq
map  :split 
map  :w^M

au BufNewFile *.htm so $VIM/edhtml.vim
au BufReadPre *.htm so $VIM/edhtml.vim
au BufNewFile *.tex so $VIM/edtex.vim
au BufReadPre *.tex so $VIM/edtex.vim

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.

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