Door Anoniem: Okay, ik bedoel dit serieus niet als kritiek; ik wil het graag begrijpen. Maar wat is er zo spannend aan een tekst editor? Ik bedoel; notepad is ook onderdeel van Windows. Ik gebruik het zelf nooit; en ook op Linux; als ik een ouderwets nog een config bestandje moet aanpassen omdat de GUI dat nog niet kan (nogal achterhaald principe, als je het mij vraagt), voldoet nano ook prima. Zelf VI als ik mezelf wil pijnigen.
Maar wat is nu de dagelijkse usecase voor VIM?
Voor jou geen enkele, als ik het goed lees. ;-)
Het punt is niet zozeer dat je er dingen mee kan die je niet ook met andere
goede editors kan doen (waar ik het wel heel basale notepad nog niet bij benadering toe reken), al zijn die er vast wel. Het punt is dat precies wat maakt dat jij je met vim pijnigt als je het incidenteel gebruikt, die nogal stevig afwijkende manier waarop het werkt (met normal mode, insert mode, select mode... modaal dus), een ongelofelijk krachtige manier blijkt te zijn om heel veel mogelijkheden direct onder je vingertoppen te hebben. Ik heb me ooit door die pijnlijke fase heen gebeten, wat me ongeveer twee weken worstelen en ergernis kostte. Daarna was het qua moeite en gemak korte tijd vergelijkbaar met andere editors die ik gewend was, en vervolgens heb ik, zonder overdrijven,
jarenlang ondervonden dat ik steeds maar nieuwe mogelijkheden bleef ontdekken om nog directer, vlotter, makkelijker dingen voor elkaar te krijgen. Inclusief soms lastige dingen — het zijn juist de uitzonderlijke situaties waarin ik opeens merkte dat ik bijvoorbeeld een resultaat van een scan in een lastig verder te verwerken formaat in de editor kon omvormen tot iets veel handigers terwijl ik gewend was daar in (toen) Perl of zo een script voor te moeten schrijven. Het is ondoenlijk om decennia na die periode nog een beeld te geven wat dat concreet allemaal geweest is, maar je hebt in vim echt verbijsterend veel mogelijkheden onder je vingertoppen, waarvan ik weet dat ik ze nog steeds niet volledig ken, en die hebben me dus inmiddels decennia het leven makkelijker, en nog makkelijker, en nog makkelijker, enzovoorts gemaakt. Ik heb in mijn leven geen andere software meegemaakt die in die mate maar hardnekkig beter en beter en beter bleef worden naarmate ik er meer ervaring mee opdeed. Echt indrukwekkend. En daardoor echt een plezier om mee te werken, na het initiële geworstel.
Toen ik in de jaren '80, lang daarvoor en ruim voor we aan grafische besturingssystemen gewend raakten, en heel wat mensen nog nooit een computer hadden aangeraakt, mijn eerste informatica-opleiding deed had ik een docent die erop hamerde dat je onderscheid moet maken tussen
gebruikersvriendelijke software en
beginnersvriendelijke software; dat software die vriendelijk is voor een ervaren gebruiker dat absoluut niet voor een beginner hoeft te zijn, en vice versa. Het punt dat hij maakte is dat wat we later een
power user zijn gaan noemen baat heeft bij een user interface die geoptimaliseerd is voor ervaren gebruikers. Dat kan betekenen dat het voor beginners een drama is, terwijl een user interface die makkelijk is voor beginners voor power users de mogelijkheden ernstig kan begrenzen. Vim past in dat beeld, het is software voor power users met een hoge drempel voor beginners.
Voor emacs geldt dat ook. Daar ben ik al heel wat jaren niet veel meer over tegengekomen, maar die teksteditor kan je als voorloper van de IDE beschouwen en die werd ooit voor de grap omschreven als een besturingssysteem met best een verdienstelijke editor. Ik heb destijds zowel vim als emacs geprobeerd, en koos voor vim juist omdat het een modale applicatie is, met dus die verschillende modi. In emacs moet je in plaats daarvan een fors aantal zeer lastige toetscombinaties gebruiken om het idioot grote aantal ingebouwde commando's te activeren, en die spagaat met mijn handen en vingers bezorgde me snel rsi. Het was beter voor mijn handen om toetsen achter elkaar in te kunnen drukken, en dat is precies wat de modale opzet van vim faciliteert. En alles met het toetsenbord kunnen doen werkt eindeloos veel vlotter dan wanneer je voortdurend naar je muis over moet stappen en terug.
En wat ik er dan allemaal mee doe? Software ontwikkelen (
python,
nim,
git) en teksten schrijven, voornamelijk, waaronder (maar niet alleen) documentatie voor die software. Ik gebruik trouwens amper nog een tekstverwerker, al staat LibreOffice wel op mijn systeem. In plaats daarvan klop ik teksten in vim in, in Markdown-formaat, en dat kan ik met
pandoc moeiteloos converteren naar docx, odt, html, pdf en meer. Pdf loopt via LaTeX (
texlive/xetex), en ik vind de opmaak die dat oplevert eindeloos veel mooier dan wat ik ooit uit LibreOffice of Word heb zien komen (al is de prijs daarvoor wel dat de mogelijkheden basaler zijn en het veel lastiger is om van een standaardopmaak af te wijken, maar voor mij levert het meer op dan het kost, ik houd van de consistentie die dat oplevert).
En dat alles gebruik ik op Linux (
Debian) met
i3 als tiling window manager. Ik gebruik
Firefox als browser,
Claws als e-mail client,
mpd en
Cantata om muziek te spelen,
QMapShack voor kaarten en gps-tracks. En dan nog
Unison en
SyncThing om synchronisaties van directory's met een paar andere systemen te doen, afhankelijk van of het op afroep of continu moet gebeuren. Mijn backups zijn gebaseerd op
btrfs-snapshots, met de mooie mogelijkheid (die zfs ongetwijfeld ook heeft) om alleen het verschil met de vorige snapshot over te zetten naar een backup-schijf (ook btrfs) en daar toch de complete directory-tree te krijgen.
Je vroeg naar de dagelijkse use-case van vim, maar vim en wat ik verder noemde zijn dingen die nogal stevig afhangen van persoonlijke voorkeuren. Essentieel voor mij hoeft helemaal niet essentieel voor jou te zijn, en vice versa. De topicstarter vroeg ook niet naar software die voor iedereen essentieel zou moeten zijn.