Můj VIM
Rivalitu mezi Vimem a Emacsem jsem tu už zmínil jako nejdelší flamewar v dějinách. Zuří nepřetržitě od osmdesátých let mezi příznivci dvou mocných
textových editorů, jejichž počátky sahají do dob, kdy počítače byly tvořeny
systémem pák a kladek a křemík se používal jen ve formě silikonového gelu pro
prsní implantáty1 . Na jedné straně stojí GNU Emacs, pocházející z mozku
svatého Richard Stallman a na druhé Vim, známý také jako editor of the
beast (protože VI je římské číslo 6, což evokuje 666), který vytvořil
někdo jiný. Jeho jméno si bohužel nikdo nepamatuje.
Já duši upsal Vimu před mnoha lety z důvodů, které jsou nenávratně
ztraceny v závějích času. (Matně si vzpomínám na tenhle návod, ale jestli
šlo o prvotní impulz, nebo až následek apriori infekce, si netipnu.) Strana,
kterou si vyberete v editorových válkách, vás změní. Začnete jinak psát, jinak
pracovat, jinak myslet, jinak žít. Začne to nenápadně zanesením prvních
direktiv do .vimrc, pokračuje to přemapováním klávesy capslock na escape a psaním vlastních rozšíření, které vám sednou jako pozadí na hrnec a skončí to
nežádoucími tiky svalové paměti, kdy automaticky vyťukáváte klávesová komba
vimu v programech, které jim nerozumí. gqap? yypv$r=?
Nedávno jsem se zhrozil, když jsem se snažil vybavit určité kombo. Dokázal jsem ho napsat, i bez klávesnice ho prsty dokázaly vyťukat, ale nemohl jsem si vybavit, které klávesy to jsou. Jako kdyby ta znalost žila v prstech a ne v mozku.
Aby bylo jasno, takhle vypadá přehled funkcí jednotlivých kláves v normálním módu, kdy nevkládáte text, ale provádíte něco, za co by vás v patnáctém století banda Španělů v červených hábitech, které nikdo nečeká, měla za čarodějnice. Při pohledu do téhle mapy jsem si usilovně snažil vybavit, co dělá určitá klávesová kombinace, aby mi pak došlo, že ji používám dnes a denně. Zase, po letech práce ve vimu znalosti klávesových akordů definitivně opustily vědomí a přešli do Freudovských katakomb mozku.
Jednu klávesu normálního módu jsem stoprocentně za všechna ta léta nikdy
nepoužil – K pro vyvolání nápovědy pro slovo pod kurzorem. (A taky g? pro
rot13. Proč to tam vůbec je?)
Další změnou, kterou na sobě začnete časem pozorovat, je pozvolné přizpůsobování editoru vašim chutím a preferencím. Po letech se z jednoduchého nástroje stane jedinečné prodloužení míšního kanálu a konečků prstů, zcela nepoužitelné pro kohokoli jiného. Zároveň ztratíte schopnost jakkoli používat cizí zmutované ohavnosti. Všichni začneme jako vojáci ve válkách editorů bojovat za společnou věc, ale skončíme sami ve vlastních zákopech obklopeni světem, který nám nerozumí & naopak.
Moje modifikace přibývaly plíživě. Ve velkém jsem se do nich opřel až letos, kdy vim dostal funkce na míru pro práci s asciiblogem. Poté jsem do jeho stále tepajících útrob vrazil LSP klienta a tím se z něj stalo plnohodnotné IDE a úpravy vesele pokračují. Teď jsem přidal příkazy pro anglicko-český slovník a tezaurus (oba recyklují onu neužívanou klávesu K).
Při psaní se často stává, že se mi v hlavě objeví anglické slovo perfektně
popisující situaci, ale nemůžu přijít na jeho českou variantu, která by
byla podobně efektivní. Dřív jsem musel alt-tabovat do prohlížeče, jít na
seznamácký slovník a tak dál. Šlo o zdlouhavou odbočku, která navíc nefungovala
ve wi-fi stínu. Stěží ideální. Nový doplněk používá offline en-cz slovník z debianích repozitářů (dict, dictd a dict-freedict-eng-ces) a lokální
slovík synonym (mythes-cs). Teď stačí příkaz :Dict nebo Kd s kurzorem nad
daným slovem a voilà — překlad.2 Jednoduché, efektivní a stačilo to
používat pět minut, abych jasně cítil, že se mi právě změnil život.
Proces tvorby teď působí uhlazeněji. Nemusím odbíhat z editoru a mám
neuvěřitelnou moc pro bříšky prstů. Tak by měl fungovat váš editor – měl by
být přizpůsoben právě a jenom vám, jako nástroj, který sedne do rukou zručného
mistra.
Někdo může namítat že excesivní přizpůsobování je ztráta času, že se nevyplatí a že zvýšená produktivita nevyváží hodiny spálené nimráním se v detailech, čtením dokumentace a skritpováním. Na to namítnu, že nezáleží jen na produktivitě, ale jestli se cítíte spokojení. Když je něco vaše, chcete to používat, máte z toho dobrý pocit. To je kouzlo DIY. Všechno si můžeme koupit, ale nic nemá takovou cenu, jako něco vlastního, co jste si vyrobili sami. Možná v tom spočívá přitažlivost Vimu a Emacsu pro extrémní harcovníky — nemusí být nutně lepší, jsou jen jejich. Proč ne? Všichni děláme iracionální volby a něco nám prostě přinese větší požitek, než alternativa, která je objektivně „lepší“.
Jinak, kdyby vás zajímalo, jak moje doplňky vypadají, nahrál jsem je
semhle. Jeden kus patří do .vimrc, ostatní jsou skripty. Jeden v bashi,
druhý v jazyku D. Proč zrovna D? Nuže, D působí jako skriptovací jazyk, ale
pořád vás může překvapit segfaultem. Jde o C++ převlečené za příčetný
něco, jehož syntaxe se nesnaží vyvolat prastaré bohy ze spánku na dně oceánů.
- Tohle není tak velký nesmysl, jak může na první pohled vypadat. Je to špatně, ale ne zas tak špatně. První fungující křemíkový tranzistor byl vyroben v r. 1954, MOSFET tranzistor, který nastartoval počítačovou revoluci, byl vynalezen v r. 1959 a implantát se silikonovým gelem v r. 1961.
- Přibližně v tomto místě jsem si při psaní článku odskočil a udělal další dvě
rozšíření: Jedno hledá články podle tagu (
gdnad tagem a vyskočí mi seznam článků s příslušným tagem) a druhé odskočí na článek podle odkazu (nedá se to udělat jen s pomocíctags, protože odkazy můžou být nepřímé reference). Oba zabraly pár (desítek) minut a hned mi znatelně mi usnadnily život & vnesly do něj nadkritické množství spokojenosti.