Hlavní navigace

Užitečné skripty a pluginy pro textový editor Vim

Pavel Tišnovský 17. 3. 2015

Vzhledem ke stále velké oblibě textového editoru Vim není divu, že pro tento nástroj vzniká velké množství skriptů i rozsáhlých pluginů. Vyvinuty byly i skripty umožňující snadnou instalaci a odinstalaci pluginů. Dnes si jeden takový skript popíšeme a navíc se budeme zabývat užitečným pluginem nazvaným vim-airline.

Obsah

1. Užitečné skripty a pluginy pro textový editor Vim

2. Skript Vim Pathogen

3. Instalace skriptu Vim Pathogen

4. Plugin vim-airline

5. Nastavení pluginu vim-airline

6. Zobrazení řádku se seznamem otevřených bufferů

7. Použití fontů upravených pro vim-airline

8. Obsah druhé části článku

9. Odkazy na Internetu

1. Užitečné skripty a pluginy pro textový editor Vim

Textový editor Vim stále náleží do skupiny nejoblíbenějších textových editorů určených jak pro operační systém Linux, tak i pro další operační systémy, mezi něž patří různé komerční Unixy, MS Windows, historické platformy Amiga a Atari ST atd. K oblíbenosti tohoto textového editoru přispívá – kromě modálního ovládání – jak možnost široké konfigurace jeho parametrů, tak i možnost tvorby maker a existence skriptovacího jazyka nazvaného Vim script, v němž je možné psát mnohdy i velmi rozsáhlé rozšiřující moduly (pluginy). Kromě toho je možné pluginy vytvářet i v dalších (skriptovacích) programovacích jazycích, například v Lue, Pythonu, Perlu či v Ruby. V dříve vydaném seriálu nazvaném Textový editor Vim jako IDE byl Vim script zmíněn a popsána byla i rozhraní pro další skriptovací jazyky. Kromě toho jsme se v tomto seriálu zmínili i o některých pluginech užitečných zejména při vývoji aplikací v různých programovacích jazycích:

  1. Textový editor Vim jako IDE (6.část – Vim Script)
    http://www.root.cz/clanky/textovy-editor-vim-jako-ide-6-cast-vim-script/
  2. Textový editor Vim jako IDE (7.část – Vim Script)
    http://www.root.cz/clanky/textovy-editor-vim-jako-ide-7-cast-vim-script/
  3. Textový editor Vim jako IDE (16. část – kooperace mezi Vimem a skriptovacími jazyky)
    http://www.root.cz/clanky/textovy-editor-vim-jako-ide-16-cast-kooperace-mezi-vimem-a-skriptovacimi-jazyky/
  4. Textový editor Vim jako IDE (17. část – kooperace mezi Vimem a jazykem Perl)
    http://www.root.cz/clanky/textovy-editor-vim-jako-ide-17-cast-kooperace-mezi-vimem-a-jazykem-perl/
  5. Textový editor Vim jako IDE (12.část: konfigurace pravítka a stavového řádku)
    http://www.root.cz/clanky/textovy-editor-vim-jako-ide-12-cast-konfigurace-pravitka-a-stavoveho-radku/

Obrázek 1: Nápověda k pluginu vim-airline popsaného v dalších kapitolách. Povšimněte si použití speciálních znaků (pravá a levá šipka, zámek, LN apod.); použití těchto znaků vyžaduje instalaci upraveného fontu, o čemž se zmíníme v dalších kapitolách.

Vzhledem k tomu, že je textový editor Vim díky Vim scriptu otevřenou platformou, pro kterou lze pluginy vytvářet velmi snadno, není divu, že dnes existuje již několik tisíc různých rozšiřujících modulů, z nichž většina je dostupná na serveru http://www.vim.org. My se dnes seznámíme s dvojicí pluginů. Prvním pluginem je skript nazvaný Vim Pathogen zajišťující jednoduchou instalaci ostatních pluginů – jedná se tedy o jakýsi velmi snadno ovladatelný správce vimovských balíčků. Další plugin, který se jmenuje vim-airline, je možné použít pro úpravu stavového řádku a popř. i druhého stavového řádku se seznamem otevřených bufferů či otevřených tabů.

Obrázek 2: Nápověda k pluginu fugitive popsaného ve druhé části tohoto článku. I zde jsou použity speciální znaky zmíněné u prvního obrázku.

2. Skript Vim Pathogen

První vimovský skript, který si v dnešním článku popíšeme, se jmenuje Vim Pathogen. Jedná se o velmi užitečný skript, který lze využít pro snadnou instalaci a odinstalaci dalších pluginů pro Vim. Jaká je vlastně funkce Vim Pathogenu? Textový editor Vim ve svém výchozím nastavení očekává, že rozšiřující moduly budou dodržovat určitou pevně danou strukturu: plugin může obsahovat vlastní skript, nápovědu, soubor s definicí syntaxe (zvýraznění syntaxe), barvové schéma, deklarace šablony chybových hlášení překladače (pro analýzu chyb), maker atd. Každý z těchto souborů se hledá v jiném podadresáři umístěném v některém adresáři obsaženém v seznamu adresářů získaných konfigurační volbou runtimepath. To však představuje problém, protože to například znamená, že nápovědy ke všem pluginům budou umístěny v jednom společném adresáři, všechny skripty v adresáři dalším apod. To vede jak ke kolizím v názvech souborů, tak i ke složitému ručnímu odstraňování již nepotřebných pluginů.

Obrázek 3: Příklad nastavení konfigurační volby nazvané runtimepath. Toto nastavení může být na jiných systémech (či dokonce na odlišných verzích toho samého systému) poněkud odlišné, důležité však je, zda tato volba obsahuje i adresář ~/.vim (zde je tento adresář uveden na prvním místě).

Podívejme se na konkrétní příklad instalace Vimu na mém pracovním počítači:

:set runtimepath?

Tento příkaz vrátí následující seznam adresářů (oddělených čárkou):

runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,
/usr/share/vim/vim74,/usr/share/vim/vimfiles/after,
/var/lib/vim/addons/after,~/.vim/after

Většina skriptů, maker, nápovědy, barvových schémat atd. nainstalovaných společně s Vimem je na tomto systému uložena do adresářové struktury umístěné v /usr/share/vim/vim74. Na této adresářové struktuře je poměrně dobře patrné rozdělení jednotlivých částí pluginů do různých podadresářů:

.
├── autoload
│   └── xml
├── colors
├── compiler
├── doc
├── ftplugin
├── indent
├── keymap
├── lang
│   ├── cs
│   │   └── LC_MESSAGES
│   ├── cs.cp1250
│   │   └── LC_MESSAGES
...
...
...
├── macros
│   ├── hanoi
│   ├── life
│   ├── maze
│   └── urm
├── plugin
├── print
├── spell
├── syntax
└── tutor

Skript Vim Pathogen mění nastavení textového editoru Vim takovým způsobem, aby bylo možné každý plugin nainstalovat do samostatného podadresáře ~/.vim/bundle/${jméno_pluginu}, což vlastně znamená, že veškerá instalace pluginu se může provést jediným příkazem cp -r … popř. přímo naklonováním repositáře s pluginem (což si ukážeme v navazujících kapitolách). Odinstalace je ještě jednodušší, protože vše zajistí příkaz rm -rf ~/.vim/bundle/${jméno_pluginu}:

.
├── autoload
│   └── pathogen.vim
└── bundle
    ├── plugin#1
    │   ├── autoload
    │   ├── doc
    │   └── plugin
    ├── plugin#2
    │   ├── autoload
    │   ├── doc
    │   └── plugin
   ...
   ...
   ...
    └── plugin#n
        ├── autoload
        ├── doc
        └── plugin

3. Instalace skriptu Vim Pathogen

Instalace skriptu Vim Pathogen je velmi jednoduchá. Tento skript je možné nainstalovat pro všechny uživatele, kteří se k danému počítači připojují, nebo alternativně jen pro jednoho uživatele, což je pro běžné pracovní laptopy i desktopy pravděpodobně typičtější případ. Pokud má být Vim Pathogen používán všemi uživateli, bude jeho instalace probíhat do adresáře /usr/share/vim/vimfiles, /usr/share/vim/vim74 atd. v závislosti na již zmíněné konfigurační volbě runtimepath. Jednodušší a podle mého názoru i v některých ohledech výhodnější je však instalace tohoto skriptu pouze pro aktivního uživatele. Tuto instalaci si nyní popíšeme.

Předpokládejme, že adresář ~/.vim má následující strukturu (jediné dva zobrazené soubory jsou používány při kontrole pravopisu, ovšem ve skutečnosti je pravděpodobné, že tento adresář již bude obsahovat pluginy nainstalované dříve):

.vim
└── spell
    ├── cs.iso-8859-2.spl
    └── cs.utf-8.spl

Vim Pathogen je tvořen skutečně pouze jedním skriptem pojmenovaným pathogen.vim. Tento skript se musí stáhnout a umístit do adresáře ~/.vim/autoload. Stažení a instalace skriptu je velmi jednoduchá: zajistí ji pouhé dva příkazy vypsané pod tímto odstavcem:

mkdir -p ~/.vim/autoload
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

Výsledná adresářová struktura bude vypadat takto:

.vim
├── autoload
│   └── pathogen.vim
└── spell
    ├── cs.iso-8859-2.spl
    └── cs.utf-8.spl

Aby se skript Vim Pathogen korektně aktivoval po každém spuštění Vimu, je nutné provést ještě malou úpravu konfiguračního souboru .vimrc umístěného v domácím adresáři. Do tohoto souboru se musí dopsat volání funkce:

execute pathogen#infect()

Pozor: volání této funkce je nutné provést až ve chvíli, kdy je nastavena volba set nocompatible, jinak inicializace neproběhne korektně! (ostatně nastavení set nocompatible by mělo být jednou z prvních věci prováděných při inicializaci Vimu :-)

Aby se správně zobrazovala i nápověda k nainstalovaným pluginům, je vhodné ihned pod výše uvedený příkaz zadat i:

call pathogen#helptags()

Od této chvíle budou všechny pluginy instalovány do adresáře ~/.vim/bundle, který je nutné vytvořit, pokud již neexistuje:

mkdir -p ~/.vim/bundle

Výsledná struktura adresáře ~/.vim by měla vypadat následovně:

.vim
├── autoload
│   └── pathogen.vim
├── bundle
└── spell
    ├── cs.iso-8859-2.spl
    └── cs.utf-8.spl

4. Plugin vim-airline

Druhý plugin určený pro textový editor Vim se jmenuje vim-airline (neplést prosím s Vim Airlines :-). Doplňkový modul vim-airline slouží především k úpravě stavového řádku (status line), ovšem je ho možné použít taktéž k zobrazení dalšího řádku obsahujícího seznam otevřených bufferů. Informace zobrazené na stavovém řádku – včetně aktuálně nastaveného režimu editoru – jsou vizuálně zvýrazněny různou barvou písma a pozadí, ovšem navíc je možné použít i speciální fonty obsahující ikony, které vim-airline může využít pro další „vyšperkování“. To je ostatně patrné i při pohledu na screenshoty použité v této kapitole i v navazujících dvou kapitolách. vim-airline lze navíc snadno upravovat, což se týká jak použitého barvového schématu, tak i konkrétních informací, které se mají na stavovém řádku zobrazit. V případě potřeby se vim-airline vypne jediným příkazem, po jehož zadání se textový editor Vim chová tak, jako by tento plugin vůbec nebyl inicializován.

Obrázek 4: Textový editor Vim bez inicializovaného pluginu vim-airline. Stavový řádek není zobrazen vůbec, protože je otevřeno jen jedno okno a volba laststatus je nastavena na jedničku. Poslední řádek je rezervován pro zobrazení pravítka (ruler).

Obrázek 5: Textový editor Vim s inicializovaným pluginem vim-airline. Statový řádek je v tomto případě zobrazen, a to díky použití konfigurační volby set laststatus=2.

Nejprve si řekněme, jakým způsobem je možné vim-airline nainstalovat. Předpokládejme, že struktura adresáře ~/.vim odpovídá struktuře popsané výše a že skript Vim Pathogen je korektně nakonfigurován a spouštěn:

.vim
├── autoload
│   └── pathogen.vim
├── bundle
└── spell
    ├── cs.iso-8859-2.spl
    └── cs.utf-8.spl

Instalaci pluginu vim-airline lze nejjednodušeji provést těmito příkazy:

wget -O airline.zip http://www.vim.org/scripts/download_script.php?src_id=22726
unzip -d ~/.vim/bundle airline.zip

Nová struktura adresáře ~/.vim by měla vypadat přibližně takto:

.vim
├── autoload
│   └── pathogen.vim
├── bundle
│   └── vim-airline
│       ├── autoload
│       │   ├── airline
│       │   │   ├── builder.vim
│       │   │   ├── debug.vim
│       │   │   ├── deprecation.vim
│       │   │   ├── extensions
│       │   │   │   ├── branch.vim
│       │   │   │   ├── bufferline.vim
│       │   │   │   ├── capslock.vim
│       │   │   │   ├── commandt.vim
│       │   │   │   ├── csv.vim
│       │   │   │   ├── ctrlp.vim
│       │   │   │   ├── ctrlspace.vim
│       │   │   │   ├── default.vim
│       │   │   │   ├── eclim.vim
│       │   │   │   ├── example.vim
│       │   │   │   ├── hunks.vim
│       │   │   │   ├── netrw.vim
│       │   │   │   ├── nrrwrgn.vim
│       │   │   │   ├── promptline.vim
│       │   │   │   ├── quickfix.vim
│       │   │   │   ├── syntastic.vim
│       │   │   │   ├── tabline
│       │   │   │   │   ├── autoshow.vim
│       │   │   │   │   ├── buffers.vim
│       │   │   │   │   ├── buflist.vim
│       │   │   │   │   ├── formatters
│       │   │   │   │   │   ├── default.vim
│       │   │   │   │   │   ├── unique_tail_improved.vim
│       │   │   │   │   │   └── unique_tail.vim
│       │   │   │   │   └── tabs.vim
│       │   │   │   ├── tabline.vim
│       │   │   │   ├── tagbar.vim
│       │   │   │   ├── tmuxline.vim
│       │   │   │   ├── undotree.vim
│       │   │   │   ├── unite.vim
│       │   │   │   ├── virtualenv.vim
│       │   │   │   ├── whitespace.vim
│       │   │   │   └── windowswap.vim
│       │   │   ├── extensions.vim
│       │   │   ├── highlighter.vim
│       │   │   ├── init.vim
│       │   │   ├── parts.vim
│       │   │   ├── section.vim
│       │   │   ├── themes
│       │   │   │   ├── badwolf.vim
│       │   │   │   ├── base16.vim
│       │   │   │   ├── bubblegum.vim
│       │   │   │   ├── dark.vim
│       │   │   │   ├── durant.vim
│       │   │   │   ├── hybrid.vim
│       │   │   │   ├── jellybeans.vim
│       │   │   │   ├── kalisi.vim
│       │   │   │   ├── kolor.vim
│       │   │   │   ├── laederon.vim
│       │   │   │   ├── light.vim
│       │   │   │   ├── lucius.vim
│       │   │   │   ├── luna.vim
│       │   │   │   ├── molokai.vim
│       │   │   │   ├── monochrome.vim
│       │   │   │   ├── murmur.vim
│       │   │   │   ├── powerlineish.vim
│       │   │   │   ├── raven.vim
│       │   │   │   ├── serene.vim
│       │   │   │   ├── silver.vim
│       │   │   │   ├── simple.vim
│       │   │   │   ├── solarized.vim
│       │   │   │   ├── sol.vim
│       │   │   │   ├── tomorrow.vim
│       │   │   │   ├── ubaryd.vim
│       │   │   │   ├── understated.vim
│       │   │   │   ├── wombat.vim
│       │   │   │   └── zenburn.vim
│       │   │   ├── themes.vim
│       │   │   └── util.vim
│       │   └── airline.vim
│       ├── doc
│       │   ├── airline.txt
│       │   └── tags
│       ├── Gemfile
│       ├── LICENSE
│       ├── plugin
│       │   └── airline.vim
│       ├── Rakefile
│       ├── README.md
│       └── t
│           ├── airline.vim
│           ├── builder.vim
│           ├── commands.vim
│           ├── extensions_default.vim
│           ├── highlighter.vim
│           ├── init.vim
│           ├── parts.vim
│           ├── section.vim
│           ├── themes.vim
│           └── util.vim
└── spell
    ├── cs.iso-8859-2.spl
    └── cs.utf-8.spl

Obrázek 6: Nápověda k modulu vim-airline zobrazená v novém (druhém) okně. Povšimněte si, že neaktivní okno má stavový řádek odlišný od aktivního okna, tj. okna, v němž se nachází kurzor.

5. Nastavení pluginu vim-airline

Doplňkový modul vim-airline by měl začít automaticky pracovat již po dalším spuštění textového editoru Vim. Ve skutečnosti se většinou funkce tohoto modulu projeví až při otevření většího množství oken, protože mnoho uživatelů má Vim nakonfigurovaný takovým způsobem, že se stavový řádek zobrazuje až při otevření druhého (či dalšího) okna. Pokud chcete, aby se stavový řádek zobrazoval vždy, tj. i ve chvíli, kdy je otevřeno jen jedno okno, je úprava konfigurace Vimu velmi snadná:

set laststatus=2

Obrázek 7: Nastavení volby laststatus na hodnotu 2. Nastavení této volby zajistí zobrazení stavového řádku i v případě, že je zobrazeno jen jedno okno (osobně si myslím, že na širokoúhlých monitorech je to spíše plýtvání místem :-)

Modul vim-airline deklaruje několik nových příkazů, především:

# Příkaz Význam
1 :AirlineToggle zapnutí či vypnutí tohoto modulu
2 :AirlineRefresh překreslení stavové řádky
3 :AirlineTheme jméno nastavení barvového schématu

U posledního příkazu je možné namísto jména barvového schématu stlačit klávesu [Tab], která vypíše všechna dostupná barvová schémata. Pokud tato klávesa nepracuje podle očekávání, zkontrolujte volbu :set wildmenu (musí být nastavena/povolena). Současná verze pluginu vim-airline obsahuje následující barvová schémata:

badwolf
base16
bubblegum
dark
durant
hybrid
jellybeans
kalisi
kolor
laederon
light
lucius
luna
molokai
monochrome
murmur
powerlineish
raven
serene
silver
simple
solarized
sol
tomorrow
ubaryd
understated
wombat
zenburn

Obrázek 8: Povšimněte si, jak stavová řádka změnila barvu při přechodu do režimu výběru vertikálních bloků textu (horní okno).

6. Zobrazení řádku se seznamem otevřených bufferů

Pokud se v konfiguračním souboru .vimrc nastaví následující proměnná:

let g:airline#extensions#tabline#enabled = 1

přepne se modul vim-airline do upravené konfigurace, v níž se na prvním řádku zobrazí seznam aktuálně otevřených bufferů. Toto chování může vyhovovat například těm uživatelům, kteří nepoužívají taby, i když ve skutečnosti je možné kombinovat větší množství tabů i bufferů: to, zda je zobrazován seznam tabů či bufferů, je indikováno v pravém horním rohu, kde se vyskytuje buď zvýrazněné slovo [buffers] či [tabs]. Toto slovo je dokonce v případě GVimu aktivní, tj. lze na něj kliknout myší a přepínat tak režim zobrazení.

Obrázek 9: V horní části okna (na prvním řádku) je nyní zobrazen seznam otevřených bufferů.

Kromě výše zmíněné volby lze chování pluginu vim-airline ovlivnit i nastavením dalších globálních proměnných, především pak:

Volba Význam
g:airline_left_sep znak použitý jako separátor na levé straně stavového řádku
g:airline_right_sep znak použitý jako separátor na pravé straně stavového řádku
g:airline_inactive_collapse chování zobrazení informací u neaktivních oken
g:airline_mode_map komplexní volba pro způsob nastavení zobrazení různých režimů Vimu
g:airline_section[abc] nastavení informací, které se mají zobrazit v jednotlivých sekcích stavového řádku

Obrázek 10: Použití speciálního fontu pro vim-airline a seznam otevřených bufferů v horní části okna.

7. Použití fontů upravených pro vim-airline

V případě, že se Vim-airline používá v Gvimu či v Kvimu, tj. ve variantě textového editoru Vim s grafickým uživatelským rozhraním, je možné si (lokálně) nainstalovat fonty obsahující speciální znaky, jež mohou být použity pro vylepšení vzhledu stavového řádku i pro zobrazení některých „ikon“ reprezentujících stav otevřeného bufferu, například informaci o tom, že je nějaký soubor určený pouze pro čtení (ikona zámku). Podívejme se nyní na způsob instalace takto upravených fontů. Ty jsou již připraveny na stránce https://github.com/powerline/fonts, což mj. znamená, že instalace může proběhnout s využitím GITu:

mkdir -p ~/.fonts
git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh

Po provedení těchto čtyř příkazů by se měl v domácím adresáři objevit adresář nazvaný fonts obsahující tyto soubory:

Anonymice Powerline Bold Italic.ttf
Anonymice Powerline Bold.ttf
Anonymice Powerline Italic.ttf
Anonymice Powerline.ttf
DejaVu Sans Mono Bold for Powerline.ttf
DejaVu Sans Mono Bold Oblique for Powerline.ttf
DejaVu Sans Mono for Powerline.ttf
DejaVu Sans Mono Oblique for Powerline.ttf
Droid Sans Mono for Powerline.otf
FuraMono-Bold Powerline.otf
FuraMono-Medium Powerline.otf
FuraMono-Regular Powerline.otf
Inconsolata-dz for Powerline.otf
Inconsolata for Powerline.otf
Inconsolata-g for Powerline.otf
Literation Mono Powerline Bold Italic.ttf
Literation Mono Powerline Bold.ttf
Literation Mono Powerline Italic.ttf
Literation Mono Powerline.ttf
Meslo LG L DZ Regular for Powerline.otf
Meslo LG L Regular for Powerline.otf
Meslo LG M DZ Regular for Powerline.otf
Meslo LG M Regular for Powerline.otf
Meslo LG S DZ Regular for Powerline.otf
Meslo LG S Regular for Powerline.otf
Monofur Bold for Powerline.ttf
Monofur for Powerline.ttf
Monofur Italic for Powerline.ttf
Sauce Code Powerline Black.otf
Sauce Code Powerline Bold.otf
Sauce Code Powerline ExtraLight.otf
Sauce Code Powerline Light.otf
Sauce Code Powerline Medium.otf
Sauce Code Powerline Regular.otf
Sauce Code Powerline Semibold.otf
ter-powerline-x12b.pcf.gz
ter-powerline-x12n.pcf.gz
ter-powerline-x14b.pcf.gz
ter-powerline-x14n.pcf.gz
ter-powerline-x16b.pcf.gz
ter-powerline-x16n.pcf.gz
ter-powerline-x18b.pcf.gz
ter-powerline-x18n.pcf.gz
ter-powerline-x20b.pcf.gz
ter-powerline-x20n.pcf.gz
ter-powerline-x22b.pcf.gz
ter-powerline-x22n.pcf.gz
ter-powerline-x24b.pcf.gz
ter-powerline-x24n.pcf.gz
ter-powerline-x28b.pcf.gz
ter-powerline-x28n.pcf.gz
ter-powerline-x32b.pcf.gz
ter-powerline-x32n.pcf.gz
Ubuntu Mono derivative Powerline Bold Italic.ttf
Ubuntu Mono derivative Powerline Bold.ttf
Ubuntu Mono derivative Powerline Italic.ttf
Ubuntu Mono derivative Powerline.ttf

Obrázek 11: Výběr fontu po zadání příkazu :set guifont=*. V okně s názvy fontů se nyní nachází i fonty, v jejichž názvu se objevuje řetězec „…for Powerline“. Právě tyto fonty obsahují speciální znaky využívané mj. i pluginem vim-airline.

Jedná se o následující upravené fonty:

# Původní font Nové jméno
1 Anonymous Pro Anonymice Powerline
2 DejaVu Sans Mono DejaVu Sans Mono for Powerline
3 Droid Sans Mono Droid Sans Mono for Powerline
4 Inconsolata Inconsolata for Powerline
5 Inconsolata-dz Inconsolata-dz for Powerline
6 Inconsolata-g Inconsolata-g for Powerline
7 Liberation Mono Literation Mono Powerline
8 Meslo Meslo for Powerline
9 Source Code Pro Sauce Code Powerline
10 Terminus Terminess Powerline
11 Ubuntu Mono Ubuntu Mono derivative Powerline
12 Monofur Monofur for Powerline

Do souboru ~/.vimrc je nutné přidat tento řádek:

let g:airline_powerline_fonts = 1

Následně je již možné si interaktivně zvolit vhodný font příkazem:

:set guifont=*

Pro šťastné uživatele vlastnící displej s vysokým rozlišením je určen například font Inconsolata-g, pro displeje s nižším rozlišením pak font Terminess Powerline.

Obrázek 12: Vim-airline v situaci, kdy používá „kompatibilní“ font. Můžeme zde vidět znak se zámkem (nápověda je vždy otevřena v režimu read-only), pravé a levé šipky/trojúhelníky a mj. i znak LN v pravém dolním rohu.

8. Obsah druhé části článku

Ve druhé části tohoto článku si popíšeme několik dalších populárních a často využívaných pluginů určených pro rozšíření schopností textového editoru Vim. Zabývat se budeme především pluginem nazvaným Fugitive. Jedná se o přídavný modul užitečný zejména pro vývojáře, autory dokumentace a administrátory používající distribuovaný systém pro správu verzí Git. S využitím Fugitive je možné přímo z Vimu vyvolávat většinu příkazů GITu, používat režim diff pro zobrazení změn, které se budou commitovat, zobrazit informaci o tom, který uživatel a v jakém commitu upravil jednotlivé řádky (programového) kódu atd. Kromě pluginu Fugitive si popíšeme i další – většinou jednodušší – přídavné moduly, například Vim-indent-guides, Vim-colors-solarized, SnipMate atd.

Obrázek 13: Plugin fugitive v akci – Git commit.

Obrázek 14: Plugin fugitive v akci – Git diff.

Obrázek 15: Plugin fugitive v akci – Git blame.

9. Odkazy na Internetu

  1. Popis skriptu Vim Pathogen
    http://www.vim.org/scripts/scrip­t.php?script_id=2332
  2. Poslední verze skriptu Vim Pathogen
    https://tpo.pe/pathogen.vim
  3. Nejlepší pluginy pro Vim
    http://vimawesome.com/
  4. Nejlepší pluginy pro Vim
    http://www.vim.org/scripts/scrip­t_search_results.php?order_by=ra­ting
  5. Vim-airline na GitHubu
    https://github.com/bling/vim-airline
  6. Vim-airline na www.vim.org
    http://www.vim.org/scripts/dow­nload_script.php?src_id=22726
  7. Vim-fugitive na GitHubu
    https://github.com/tpope/vim-fugitive
  8. Vim-fugitive na www.vim.org
    http://www.vim.org/scripts/scrip­t.php?script_id=2975
  9. Textový editor Vim jako IDE (seriál)
    http://www.root.cz/clanky/textovy-editor-vim-jako-ide/
  10. Building Vim
    http://vim.wikia.com/wiki/Bu­ilding_Vim
  11. Getting the Vim source with Mercurial
    http://vim.wikia.com/wiki/Get­ting_the_Vim_source_with_Mer­curial
  12. Vim Perl Interface
    http://vim.dindinx.net/vim7/html/if_per­l.txt.php
  13. Vim Perl Support
    http://www.softpanorama.or­g/Editors/Vimorama/vim_per­l_support.shtml
  14. VIM as Python IDE
    http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/
  15. Stack Overflow: VIM: Perl interface: passing a variable to Perl and reading a vim variable from Perl
    http://stackoverflow.com/qu­estions/4999902/vim-perl-interface-passing-a-variable-to-perl-and-reading-a-vim-variable-from
  16. Stack Overflow: Getting started with vim scripting with Perl
    http://stackoverflow.com/qu­estions/2208618/getting-started-with-vim-scripting-with-perl
  17. Python with a modular IDE (Vim)
    http://www.sontek.net/python-with-a-modular-ide-vim
  18. Getting to VIM's Python interface
    http://zerokspot.com/weblog/2009/02/21/get­ting-to-know-vims-python-interface/
  19. Pretty-formatting XML
    http://vim.wikia.com/wiki/Pretty-formatting_XML
  20. Delete a pair of XML/HTML tags
    http://vim.wikia.com/wiki/De­lete_a_pair_of_XML/HTML_tags
  21. Vim as XML Editor
    http://www.pinkjuice.com/how­to/vimxml/
  22. xmledit: A filetype plugin to help edit XML, HTML, and SGML documents
    http://www.vim.org/scripts/scrip­t.php?script_id=301
  23. Poslední vývojová verze makra xmledit
    http://github.com/sukima/xmledit/
  24. vim.wikia: Display date-and-time on status line
    http://vim.wikia.com/wiki/Display_date-and-time_on_status_line
  25. vim.wikia: Writing a valid statusline
    http://vim.wikia.com/wiki/Wri­ting_a_valid_statusline
  26. vim.wikia: Statusline tab level ruler
    http://vim.wikia.com/wiki/Sta­tusline_tab_level_ruler
  27. vim.wikia: Switching between different statuslines
    http://vim.wikia.com/wiki/Swit­ching_between_different_sta­tuslines
  28. X Selections, Cut Buffers, and Kill Rings
    http://www.jwz.org/doc/x-cut-and-paste.html
  29. Accessing the system clipboard
    http://vim.wikia.com/wiki/Ac­cessing_the_system_clipbo­ard
  30. xcutsel(1) – Linux man page
    http://linux.die.net/man/1/xcutsel
  31. snipMate : TextMate-style snippets for Vim
    http://www.vim.org/scripts/scrip­t.php?script_id=2540
  32. msanders / snipmate.vim
    https://github.com/msander­s/snipmate.vim
  33. snipMate.vim Introductory Screencast
    http://vimeo.com/3535418
  34. Clewn home page
    http://clewn.sourceforge.net/
  35. How to connect vim with gdb – using clewn
    http://chunhao.net/blog/how-to-connect-vim-with-gdb-using-clewn
  36. yavdb : Yet Another (Generic) Vim Debugger Integration
    http://www.vim.org/scripts/scrip­t.php?script_id=1954
  37. Vim home page
    http://www.vim.org/
  38. vim (man page)
    http://www.linux-tutorial.info/modules.php?na­me=ManPage&sec=1&manpage=vim
  39. Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin
    http://www.thegeekstuff.com/2009/01/tu­torial-make-vim-as-your-cc-ide-using-cvim-plugin/
  40. c.vim : C/C++ IDE
    http://vim.sourceforge.net/scrip­ts/script.php?script_id=213
  41. c.vim : C/C++ IDE key mappings
    http://lug.fh-swf.de/vim/vim-c/c-hotkeys.pdf
  42. Základní základy editoru Vim
    http://www.root.cz/clanky/zakladni-zaklady-editoru-vim/
  43. Jak si přizpůsobit Vim
    http://www.root.cz/serialy/jak-si-prizpusobit-vim/
  44. Taglist (plugin)
    http://www.vim.org/scripts/scrip­t.php?script_id=273
  45. The NERD tree: A tree explorer plugin for navigating the filesystem
    http://www.vim.org/scripts/scrip­t.php?script_id=1658
  46. JavaBrowser : Shows java file class, package in a tree as in IDEs. Java source browser.
    http://www.vim.org/scripts/scrip­t.php?script_id=588
  47. snippetsEmu : An attempt to emulate TextMate's snippet expansion
    http://www.vim.org/scripts/scrip­t.php?script_id=1318
Našli jste v článku chybu?

17. 3. 2015 8:46

Mno měl bych tě poslat někam, ale asi zkusím odpovědět slušně - praktické zkušenosti z řešení problémů u uživatelů Vimu:

A) hele mě to prostě nejede, v tom článku/návodu to mají blbě
B) stáhl sis ten soubor skriptem, co byl v návodu?
A) jasně, přesně podle návodu
B) a rozbalils ho do ~/.vim?
A) no jistě, spustil jsem ten druhý skript, ale stejně to nejede
B) a co to psalo?
A) tyjo já už nevím
B) tak mi dej výpis ~/.vim/bundle/vim-airline
A) ls: cannot access /home/tester/­.vim/vim-airline: No s…







25. 3. 2015 21:57

Nakonec to vypada tak, ze oba pristupy zkusim strucne porovnat nekterem z dalsich dilu serialu.

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

Podnikatel.cz: Babiš: E-shopy z EET možná vyjmeme

Babiš: E-shopy z EET možná vyjmeme

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?