A je ze mě VIMař

Od Petr Zemek, 2009-07-07

Ne, nepřepsal jsem se - tento příspěvek opravdu není o víně, ale o textovém editoru VIM, který jsem začátkem července letošního roku začal výhradně používat pro editaci textových souborů. Ač tento editor používám už delší dobu, tak se většinou jednalo jen o editaci systémových konfiguračních souborů pod rootem a na běžné použití jsem se vrhnul až teď. Někteří by mohli namítnout, že po pouhém jednom týdnu nemám právo si říkat "VIMař", ale co (lepší, krátké a výstižné pojmenování mě nenapadlo). V tomto příspěvku bych chtěl stručně zmínít editory, které jsem doposud používal, zmínit důvody, proč jsem se rozhodl přejít na VIM a sepsat své dosavadní zkušenosti s používáním VIMu.

Něco z historie

Do začátku roku 2006 (tehdy jsem začal používat operační systém GNU/Linux) jsem používal různé editory - většinou to byl notepad (:)) a později PSPad. V roce 2005 v prvním semestru na VŠ jsem k naprogramování projektů v jazyce C do předmětu Základy programování používal vývojové prostředí DevC++. V GNU/Linuxu se mně zalíbil editor Kate, který jsem donedávna používal. No a nyní používám VIM.


Kate
Kate

Co mě k této změně vedlo? Kate je skvělý a použitelný editor - to mně nikdo nevymluví. Bohužel se v jeho nové verzi v KDE4 objevilo pár věcí, které mě začaly vadit:

  • Layout klávesnice přepínám pomocí Alt+Q, ale v nové verzi při stiskntí Alt dojde k přesunu focusu na menu, takže nemůžu pokračovat v psaní textu.
  • Byla přidána podpora pro autodetekci kódování, ale tu se mně nepodařilo rozchodit.
  • Dříve byla všechna kódování na výběr v jednom menu, ale nyní se kódování rozdělilo do mnoha submenu dle původu (centrální Evropa, Japonsko, ...), což zbytečně zdržuje.
  • Nefunguje mně spolehlivě odsazování bloků textu doleva (to už ale začalo dříve).
  • Kate sice obsahuje spoustu možností konfigurace a podporu pluginů, ale rozšířitelnost není jednoduchá a těch pluginů by mohlo být více.

Také mě začala nahlodávat myšlenka, že bych zkusil jiný editor, který by mně nabídl více možností. Také mě zajímalo, co na tom hlavolamu jménem VIM lidi vidí. Tak jsem si řekl, že to zkusím, a jak se zdá, tak zatím není návratu :).

VIM

Co se mně na VIMu líbí:

  • Téměř neomezená možnost konfigurace, podpora pro scripty/makra, ohromné množství pluginů (tento bod je hlavním důvodem, proč jsem se rozhodl přejít na VIM - lze si vytvářet vlastní zkratky a scripty, lze si navolit např. jinou konfiguraci pro editaci C++ souborů a jinou pro editaci Python scriptů atd.).
  • Na Internetu je k tomuto editoru k dispozici mnoho článků, rad a tipů.
  • Rychlost (zkoušel jsem editovat 50 MB velký SQL script a i se zapnutým syntax highlightingem jsem nepocítil žádný výkonostní dopad na editaci - v Kate byla editace tohoto souboru neúnosná).
  • Věci, které mně pořádně nefungovaly v Kate, zde fungují (odsazování bloků textu, autodetekce kódování atd.).

Co se mně naopak zatím na VIMu nelíbí a co se snažím napravit, ale zatím bez úspěchu:

  • V Kate jsem měl tenkou čáru na začátku 81. sloupce (viz screenshot), takže jsem přesně věděl, kolik mně ještě zbývá místa, než budu muset rozdělit řádek na více řádků (pokud je ve standardu kódování požadována maximální velikost řádku 80 znaků). Ve VIMu to asi nepůjde, ale překvapuje mě, že jsem nenašel ani způsob, jak ji dostat do GVIMu.
  • U autodetekce kódování nefunguje správně detekce souborů v kódování cp1250 a latin2. Buď to soubor v kódování cp1250 zobrazí jako soubor v kódování latin2 a nebo to soubor v kódování latin2 zobrazí v kódování cp1250 (podle priorit). Tohle je obecně problém, protože tyto dvě kódové sady jsou velice podobné, ale zajímalo by mě, zda to lze nějak vyřešit.
  • Asi největší problém se týká copy&paste mezi VIMem a jinými aplikacemi. V jiných editorech (teď beru v úvahu editory v grafickém prostředí) je klasické Ctrl+C a Ctrl+V, které pak funguje mezi všemi aplikacemi. V GVIMu se to ale musí řešit speciálně a to buď přes X11 registry * a + nebo přes buffer uložený v souboru (druhá možnost je pouze pro přenos dat mezi instancemi VIMu). Takže před vlastním zkopírováním textu (do registru či schránky) je nutné se rozhodnout, kam poputuje výsledek a podle toho se zařídit. Zatím jsem nenašel pro mě přijatelné řešení, které by bylo funkční a jednoduché na použití, ale ještě to budu řešit, protože bez toho se neobejdu.


VIM
VIM

Závěr

Momentálně se nacházím ve fázi konfigurace editoru a učení se základům editace ve VIMu. Zatím mě to baví a nepočítám, že bych v dohledné době přešel na jiný editor, protože poté, co jsem ochutnal některé z vymožeností VIMu, by se mně velice špatně přecházelo :).

Jaký editor používáte vy? A proč zrovna používáte tento a ne jiný? Zkoušeli jste VIM? Co na něj říkáte?

Tagy
Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Filtrované HTML (využíváno)

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <table>
  • Zvýraznění syntaxe kódu lze povolit přes následující značky: <code>, <blockcode>, <bash>, <c>, <cpp>, <haskell>, <html>, <java>, <javascript>, <latex>, <perl>, <php>, <python>, <ruby>, <rust>, <sql>, <text>, <vim>, <xml>, <yaml>.
  • Řádky a odstavce se zalomí automaticky.
  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
CAPTCHA
1 + 0 =
Vyřešte tento jednoduchý matematický příklad a vložte výsledek. Např. pro 1+3 vložte 4.
Nějak se mi tady rozmohl spam, takže poprosím o ověření.