k47.cz  — každý den dokud se vám to nezačne líbit
výběr foto Praha povídky kultura
TECH ▞▞ kolo | twitter RSS
««« »»»

Můj VIM

27. 11. 2019 — k47 (♪)

Ri­va­litu mezi Vimem a Ema­c­sem jsem tu už zmínil jako nejdelší fla­me­war v dě­ji­nách. Zuří ne­pře­tr­žitě od osm­de­sá­tých let mezi pří­z­nivci dvou moc­ných tex­to­vých edi­torů, je­jichž po­čátky sahají do dob, kdy po­čí­tače byly tvo­řeny sys­té­mem pák a kladek a křemík se po­u­ží­val jen ve formě si­li­ko­no­vého gelu pro prsní im­plan­táty1 . Na jedné straně stojí GNU Emacs, po­chá­ze­jící z mozku sva­tého Ri­chard Stall­man a na druhé Vim, známý také jako editor of the beast (pro­tože VI je římské číslo 6, což evo­kuje 666), který vy­tvo­řil někdo jiný. Jeho jméno si bo­hu­žel nikdo ne­pa­ma­tuje.

Já duši upsal Vimu před mnoha lety z důvodů, které jsou ne­ná­vratně ztra­ceny v zá­vě­jích času. (Matně si vzpo­mí­nám na tenhle návod, ale jestli šlo o pr­votní impulz, nebo až ná­sle­dek apri­ori in­fekce, si ne­tipnu.) Strana, kterou si vy­be­rete v edi­to­ro­vých vál­kách, vás změní. Za­čnete jinak psát, jinak pra­co­vat, jinak myslet, jinak žít. Začne to ne­ná­padně za­ne­se­ním prv­ních di­rek­tiv do .vimrc, po­kra­čuje to pře­ma­po­vá­ním klá­vesy ca­pslock na escape a psaním vlast­ních roz­ší­ření, které vám sednou jako pozadí na hrnec a skončí to ne­žá­dou­cími tiky sva­lové paměti, kdy au­to­ma­ticky vy­ťuká­váte klá­ve­sová komba vimu v pro­gra­mech, které jim ne­ro­zumí. gqap? yypv$r=?

Ne­dávno jsem se zhro­zil, když jsem se snažil vy­ba­vit určité kombo. Do­ká­zal jsem ho napsat, i bez klá­ves­nice ho prsty do­ká­zaly vy­ťu­kat, ale nemohl jsem si vy­ba­vit, které klá­vesy to jsou. Jako kdyby ta zna­lost žila v prs­tech a ne v mozku.

Aby bylo jasno, takhle vypadá pře­hled funkcí jed­not­li­vých kláves v nor­mál­ním módu, kdy ne­vklá­dáte text, ale pro­vá­díte něco, za co by vás v pat­nác­tém sto­letí banda Špa­nělů v čer­ve­ných há­bi­tech, které nikdo nečeká, měla za ča­ro­děj­nice. Při po­hledu do téhle mapy jsem si usi­lovně snažil vy­ba­vit, co dělá určitá klá­ve­sová kom­bi­nace, aby mi pak došlo, že ji po­u­ží­vám dnes a denně. Zase, po letech práce ve vimu zna­losti klá­ve­so­vých akordů de­fi­ni­tivně opus­tily vědomí a přešli do Freu­dov­ských ka­ta­komb mozku.

Jednu klá­vesu nor­mál­ního módu jsem sto­pro­centně za všechna ta léta nikdy ne­po­u­žil – K pro vy­vo­lání ná­po­vědy pro slovo pod kur­zo­rem. (A taky g? pro rot13. Proč to tam vůbec je?)

Další změnou, kterou na sobě za­čnete časem po­zo­ro­vat, je po­zvolné při­způ­so­bo­vání edi­toru vašim chutím a pre­fe­ren­cím. Po letech se z jed­no­du­chého ná­stroje stane je­di­nečné pro­dlou­žení míš­ního kanálu a ko­nečků prstů, zcela ne­po­u­ži­telné pro ko­ho­koli jiného. Zá­ro­veň ztra­títe schop­nost jak­koli po­u­ží­vat cizí zmu­to­vané ohav­nosti. Všichni za­čneme jako vojáci ve vál­kách edi­torů bo­jo­vat za spo­leč­nou věc, ale skon­číme sami ve vlast­ních zá­ko­pech ob­klo­peni světem, který nám ne­ro­zumí & naopak.

Moje mo­di­fi­kace při­bý­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 as­cii­blo­gem. Poté jsem do jeho stále te­pa­jí­cích útrob vrazil LSP kli­enta a tím se z něj stalo pl­no­hod­notné IDE a úpravy vesele po­kra­čují. Teď jsem přidal pří­kazy pro an­g­licko-český slov­ník a te­zau­rus (oba recyklují onu ne­u­ží­va­nou klá­vesu K).

Při psaní se často stává, že se mi v hlavě objeví an­g­lické slovo per­fektně po­pi­su­jící si­tu­aci, ale nemůžu přijít na jeho českou va­ri­antu, která by byla po­dobně efek­tivní. Dřív jsem musel alt-ta­bo­vat do pro­hlí­žeče, jít na se­zna­mácký slov­ník a tak dál. Šlo o zdlou­ha­vou od­bočku, která navíc ne­fun­go­vala ve wi-fi stínu. Stěží ide­ální. Nový do­pl­něk po­u­žívá of­fline en-cz slov­ník z de­bi­a­ních re­po­zi­tářů (dict, dictddict-freedict-eng-ces) a lo­kální slovík sy­no­nym (mythes-cs). Teď stačí příkaz :Dict nebo Kd s kur­zo­rem nad daným slovem a voilà — pře­klad.2 Jed­no­du­ché, efek­tivní a sta­čilo to po­u­ží­vat pět minut minut, abych jasně cítil, že se mi právě změnil život. Proces tvorby teď působí uhla­ze­něji. Ne­mu­sím od­bí­hat z edi­toru a mám ne­u­vě­ři­tel­nou moc pro bříšky prstů. Tak by měl fun­go­vat váš editor – měl by být při­způ­so­ben právě a jenom vám, jako ná­stroj, který sedne do rukou zruč­ného mistra.

Někdo může na­mí­tat že ex­ce­sivní při­způ­so­bo­vání je ztráta času, že se ne­vy­platí a že zvý­šená pro­duk­ti­vita ne­vy­váží hodiny spá­lené nimrá­ním se v de­tai­lech, čtením do­ku­men­tace a skrit­po­vá­ním. Na to na­mítnu, že ne­zá­leží jen na pro­duk­ti­vitě, ale jestli se cítíte spo­ko­jení. Když je něco vaše, chcete to po­u­ží­vat, máte z toho dobrý pocit. To je kouzlo DIY. Všechno si můžeme koupit, ale nic nemá ta­ko­vou cenu, jako něco vlast­ního, co jste si vy­ro­bili sami. Možná v tom spo­čívá při­taž­li­vost Vimu a Emacsu pro ex­trémní har­cov­níky — nemusí být nutně lepší, jsou jen jejich. Proč ne? Všichni děláme ira­ci­o­nální volby a něco nám prostě při­nese větší po­ži­tek, než al­ter­na­tiva, která je ob­jek­tivně „lepší“.


Jinak, kdyby vás za­jí­malo, jak moje do­plňky vy­pa­dají, 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 skrip­to­vací jazyk, ale pořád vás může pře­kva­pit se­g­faul­tem. Jde o C++ pře­vle­čené za pří­četný něco, jehož syn­taxe se ne­snaží vy­vo­lat pra­staré bohy ze spánku na dně oceánů.


  1. Tohle není tak velký ne­smysl, jak může na první pohled vy­pa­dat. Je to špatně, ale ne zas tak špatně. První fun­gu­jící kře­mí­kový tran­zis­tor byl vy­ro­ben v r. 1954, MOSFET tran­zis­tor, který na­star­to­val po­čí­ta­čo­vou re­vo­luci, byl vy­na­le­zen v r. 1959im­plan­tát se si­li­ko­no­vým gelem v r. 1961.
  2. Při­bližně v tomto místě jsem si při psaní článku od­sko­čil a udělal další dvě roz­ší­ření: Jedno hledá články podle tagu (gd nad tagem a vy­skočí mi seznam článků s pří­sluš­ným tagem) a druhé od­skočí na článek podle odkazu (nedá se to udělat jen s pomocí ctags, pro­tože odkazy můžou být ne­přímé re­fe­rence). Oba za­braly pár (de­sí­tek) minut a hned mi zna­telně mi usnad­nily život & vnesly do něj nad­kri­tické množ­ství spo­ko­je­nosti.
píše k47 & hosté, ascii@k47.cz