Editor vim - konfigurace
Do konfiguračního souboru ~/.vimrc
(nebo ~/.exrc
)
se zapisují příkazy editoru ex
. Na rozdíl od práce v editoru VIM,
v konfiguračním souboru se nezapisuje před příkazy dvojtečka.
Všechny zde uvedené příkazy lze vyzkoušet i interaktivně ve VIMu (v ex módu).
syn on | barevny rezim (pro psani C++, HTML atd.) |
syn off | vypne barevny rezim |
:syn sync fromstart | Zadejte tento příkaz (v ex módu), pokud se barevné zývrazňování nějakým způsobem rozsype |
Atributy
Nastavování proměnných pomocí set
(Pouzie-li se prikaz :se
misto :set
, pak zmena plati pouze do vypnuti aktualniho
souboru).
SYNTAX
- :set jmeno_atributu
- Zapne atribut
- :set nojmeno_atributu
- Vypne atribut
- :set jmeno_atributu=hodnota
- pro nastaveni hodnoty
- :set jmeno_atributu?
- pro zjisteni hodnoty atributu
- :set
- pro zjisteni hodnot atributu lisicich se od implicitnich hodnot
- :set all
- zjisti hodnoty vsech atributu
- :set autowrite redraw nomagic shiftwidth=4
- změní několik atributů naráz
Uložení atributů
Jednou z moznosti je prikazem set (bez dvojtecky) umistit do souboru .vimrc
,
ktery je ulozen v domovskem adresari.
Druhou moznosti je atributy ulozit do promenne EXINIT
v souboru
~/.profile
.
(Např. export EXINIT="set autowrite nomagic shiftwidth=4"
)
Nejdůležitější atributy
atributy (implicitni hodnoty) {zkratka}
- autoindent (no...) {aw}
- (odsazovani) po stisku
Enter
se kursor presune na dalsi radek se stejnym odstazenim. (Ctrl-d ve vkladacim rezimu nas nasledne vraci o tolik mezer, kolik je nastaveno v atributuswiftwidth
) - autowrite (no...)
- prikaz
:n jmeno
zpusobi automaticke ulozeni aktualniho souboru, stejne tak pri prikazu:! prikaz
. - list (no...)
-
Tabulatory zobrazuje jako
^I
a konec radku jako$
. - magic (magic)
- symboly ., *, [, \ se chapou jako metaznaky
- number (no...) {nu}
- zobrazuji se poradova cisla radku
- report=hodnota (2)
- limit, jehoz prekroceni se uzivateli oznami (napr. smazu vice jak 2 radky, vypise se, kolik jsem smazal)
- shiftwidth=hodn (8)
- o kolik mezer se posune text pri pouziti
<
a>
. - wrapscan (wrapscan){ws}
- pri hledani retezce se po dosazeni konce (respektive zacatku) pokracuje dal od zacatku (respektive konce)
- wrapmargin=hodn (0){wp}
- je-li hodnota kladne cislo
n
a zbyva-li k pravemu okrajin
mezer, automaticky se prejde na novy radek. Nedopsane slovo presune cele. - ignorecase (no..) {ic}
- pri hledani retezcu nerozlisuje mala a velka pismena
- hlsearch (no..) {hls}
- Zapne zvyrazneni nalezenych retezcu. Zvyrazneni se vypne prikazem
:noh[lsearch]
- showmode (showmode)
- v poslednim radku zobrazi, do jakeho vkladaciho rezimu jsme se prave prepnuli (INSERT, REPLACE)
- tabstop=hodnota (8)
- nastavi tabulatory na obrazovce. Nove nastaveni se vsak netyka pripadneho tisku souboru.
- writeany (no..) {wa}
- dovoluje libovolny typ prikazu
write
(pokud je napriklad soubor jen pro cteni, neni nutne psat:w!
, ale staci zadat:w
) - wrap (no..)
- dlouhe radky budou zobrazeny na obrazovce cele (pokud je radek delsi nez obrazovka, zalomi se)
- showmatch (no..)
- pri presunu na zacatek (konec) zavorky zablika cela zavorka. Vhodne pro programatory.
- smartindent (no..)
- Chytre odsazovani (odsazuje bloky dle zavorek atp. Vhodne pri programovani).
Kódování
fileencoding=utf-8 fileencodings=utf-8,latin2 termencoding=utf-8
Definice maker
Makra muzeme predem definovat v souboru .vimrc
, nebo az pri behu editoru
prikazem :map znaky poslopnost_prikazu
, kde znaky
o je posloupnost
znaků, která spustí makro.
Makra se spuštějí v příkazovém režimu.
Pro definici maker lze pouzit libovolne znaky krome znaku ENTER a ESC. Makra nesmi zacinat cislici (cislice se pouzivaji pro pocet opakovani prikazu).
- :map
- vypise vsechna jmena maker a jejich posloupnosti prikazu
- :unmap znaky
- obnovi puvodni vyznam znaku
- :map x dd
- klavesa
x
ma novy vyznam (maze aktualni radek) - :map <F5> dd
- klavesa F5 smaze radek
- :map K 03ly5l$pj
- Presune kursor na zacatek radku (0), pak se kurzor presune o tri znaky doprava (3l), pak do nepojmenovaneho bufru zkopiruje 5 nasledujicich znaku (y5l). Pak se kursor presune na konec radku ($), vypise se obsah nepojmenovaneho bufru (p) a prejde se na dalse radek (j).
Zkratky
Zratky fungují ve vkládacím režimu, ale třeba i v ex módu.
- :map! zkratka dlouhy_retezec
- zkratka je automaticky nahrazena dlouhym retezcem (ihned)
- :ab zkratka dlouhy_retezec
- zkratka je automaticky nahrazenda dlouhym retezcem, pokud za skratkou nasleduje mezera nebo Escape
- :map! (:ab)
- zobrazi seznam zkratek
- :unmap! zkratka
- zrusi zkratku
- :unab zkratka
- zrusi zkratku
Protože píšu často HTML a nechce se mi kvůli HTML značkám přpínat z češtiny na angličtinu, mám definovanou spoustu podobných značek:
map! §; ~ map! §? < map! §: > map! §§ ' map! §§§ § map! §/ { map! §( } map! §ú [ map! §) ] map! §2 @ map! §3 # map! §4 $ map! §5 % map! §6 ^ map! §7 & map! §8 * map! §h+ <h1> map! §H+ </h1> map! §hě <h2> map! §Hě </h2> map! §hš <h3> map! §Hš </h3> map! §hč <h4> map! §Hč </h4> map! §a <a href=""> map! §A </a> map! §br <br /> map! §code <code> map! §Code </code> …