Als je het over vi hebt dan wordt tegenwoordig gewoonlijk vim of nvim bedoeld. Jaren geleden, toen het commando vi nog de oude vi-editor opstartte, knapte ik er direct na opstarten al op af omdat volslagen onduidelijk was hoe ik wat dan ook kon doen, inclusief hoe je het weer kon afsluiten.
Met vim en nvim is dat anders. Als je het start zonder argumenten worden een paar hints gegeven, waaronder hoe je het afsluit en hoe je de help-informatie oproept.
Gebruik die informatie. De help-teksten zijn enorm uitgebreid. Leer jezelf om te beginnen genoeg basisvaardigheden om ermee te kunnen werken. Leer hoe je de help-functie gebruikt. En heb geduld, zowel in het thuisraken in het gebruik ervan als in het lezen van de helpteksten! Ook al is het een editor voor kale tekst, het bevat makkelijk zoveel functies en mogelijkheden als een full-blown tekstverwerker. Mij heeft het ooit ongeveer twee weken aan dagelijks gebruik gekost voor ik enigzins handigheid erin begon te krijgen, om vervolgens nog vele jaren (en nog altijd) meer mogelijkheden en handigheidjes te ontdekken.
Dit is een voorbeeld van software die erg lastig is om te leren maar die je vervolgens zoveel handige mogelijkheden en gemak oplevert dat je die moeite meer dan dubbel en dwars weer terugverdient in het gebruik ervan. Het is een investering die zich terugbetaalt. Vim is absoluut niet beginnersvriendelijk maar voor wie de weg leert kennen uiteindelijk opmerkelijk gebruikersvriendelijk.
Wat inleidende opmerkingen:
Vim heeft een
modale interface, wat wil zeggen dat het zich in verschillende modi kan bevinden. Die zijn:
• normal mode: Hierin kan je commando's intypen, zoals
:help, maar ook eenletterige commando's zoals
y om te kopiëren en
p om te plakken. Wat niet kan in normale modus is tekst intypen.
• insert mode: Hierin kan je tekst intypen. Vanuit normal mode activeer je het (onder meer) door op
i of
Insert te drukken. Je gaat weer terug naar normal mode met
Esc.
• visual mode: Hierin maak je tekstselecties. Je start het vanuit normal mode met
v om van een teken tot een ander teken te selecteren, met
Shift+v om hele regels te selecteren, of met
Ctrl+v om rechthoekige selecties te maken. In visual mode zijn allerlei commando's beschikbaar die op de geselecteerde tekst werken. Je kan bijvoorbeeld alles in hoofdletters of in kleine letters veranderen.
In de helpteksten zie je staan dat in normal mode letters gebruikt worden om de cursor in de tekst te verplaatsen. Pijltjestoetsen werken ook, en toetsenborden zonder pijltjestoetsen ben ik al in vele decennia niet tegengekomen. Je kan dus rustig vergeten welke vier letters dat zijn en gewoon pijltjestoetsen gebruiken.
Belangrijk in de help-functie is dat je erin kan zoeken. Als je (in normal mode) bijvoorbeeld intypt:
:help case
en in plaats van op
Enter op
Ctrl+d drukt, dan krijg je een overzicht van help-ingangen waar "case" in voorkomt te zien:
case 'tagcase' 'smartcase' 'noinfercase' 'wildignorecase' spell-CHECKCOMPOUNDCASE
'casemap' lowercase strcasestr() 'nosmartcase' 'nofileignorecase'
:syn-case uppercase /ignorecase 'noignorecase' 'nowildignorecase'
PHP_vintage_case_default_indent 'infercase' 'ignorecase' 'fileignorecase' spell-KEEPCASE
Het commando ":help case" staat er nog, en je kan daarin "case" uitbreiden of vervangen door een van de genoemde opties om daar informatie over te krijgen, bijvoorbeeld ":help uppercase".
Dit is maar een klein begin. Zoals gezegd: lees die helpteksten, zeker de inleidende teksten die het basisgebruik van de editor uitleggen. Het is niet altijd makkelijk en het vergt geduld, maar alles wat er over vim te weten valt staat erin.
De vaardigheid om met de helpfunctie om te gaan is dus je ingang om vaardigheid met de editor op te bouwen. Als je ":help" intypt zie je als eerste wat tips staan voor hoe door in de helpteksten zelf navigeert (met weer de opmerking dat de pijltjestoetsen ook werken), hoe je er hyperlinks in volgt naar een andere helptekst, hoe je daarna weer teruggaat naar de plek van waaruit je de link volgde etc. Sla dat niet over en oefen ermee, je bent de eerste tijd een vim-cursist die allerlei basale dingen moet leren. De eerste paar weken zullen worstelen zijn, daarna zal je merken dat je er handig in wordt en meer een vim-gebruiker wordt, en vervolgens zal je merken dat je nog jarenlang momenten hebt waarin je je afvraagt of iets niet handiger kan om dan in de helpteksten te ontdekken dat dat ook echt handiger kan, je wordt geleidelijk aan steeds meer een vim-wizard.
Ik ben dat proces al vele jaren geleden begonnen, en tegenwoordig vind ik vrijwel elke andere editor ongelofelijk beperkt in vergelijking met wat ik gewend ben.[*] Probeer het, en heb er met name in het begin geduld mee, je moet door een lastige leerfase heen voordat je er handig genoeg in bent om er vervolgens juist voordeel van te hebben. Dat voordeel is er beslist, het is de inspanning waard.
[*] Voor de Emacs-liefhebbers: ja, ik weet dat Emacs ook heel krachtig is, en dingen kan die vim niet kan. Wat mij deed afknappen op Emacs was dat je voortdurend meerdere toetsen gelijktijdig moet indrukken, en dat bezorgt me RSI. De modale benadering van vim geeft zonder dat nadeel toch snelle toegang tot enorm veel mogelijkheden.