Werk je op verschillende systemen en regelmatig op afstand dan is een platform onafhankelijke goede teksteditor een must. En ik heb hem gevonden: micro. Micro is eenvoudig te bedienen en maakt gebruik van de vele mogelijkheden van moderne terminals. Hij is beschikbaar als één bestand, statisch en dus zonder afhankelijkheden, waardoor je micro maar moet downloaden en starten.
Micro beschouwt zichzelf als de opvolger van nano maar concurreert niet met emacs of vim. M.a.w. micro legt de nadruk op gebruiksvriendelijk en niet op geavanceerde functies. Micro is dus geen programmeeromgeving, maar een uitstekende teksteditor die je zowel in een lokale terminal als via ssh kunt gebruiken.
Een teksteditor zoals micro ontwerpen en bouwen is een project zonder einde. Zo staan op het verlanglijstje van de ontwerpers nog automatisch aanvullen en een boomstructuur.
De micro teksteditor bestaat uit één bestand per platform die je van het internet kunt downloaden via github. Aangezien micro teksteditor op het internet is opgeslagen in gecomprimeerde tar bestanden en de naam van het bestand het versienummer bevat, hebben de ontwerpers toch een installatie programma geschreven.
Je kunt versie 1.4.0 voor een Linux 64 bits systeem downloaden en uitpakken door de volgende opdracht uit te voeren:
dany@main:~>curl -L https://github.com/zyedidia/micro/releases/download/v1.4.0/micro-1.4.0-linux64.tar.gz | tar xvz -C ~/bin --no-anchored 'micro' --strip-components 1
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 616 0 616 0 0 1180 0 --:--:-- --:--:-- --:--:-- 1182 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0micro-1.4.0/micro 100 3802k 100 3802k 0 0 752k 0 0:00:05 0:00:05 --:--:-- 871k dany@main:~>which micro
/home/dany/bin/micro
De curl opdracht download versie 1.4.0 voor linux64 systemen. Curl geeft de download door aan de tar opdracht om enkel micro (--no-anchored 'micro') uit het archief te halen en in de map met uitvoerbare bestanden van de huidige gebruiker te plaatsen (-C ~/bin). Om de mapstructuur in het archief te negeren werd de optie --strip-components 1 toegevoegd.
De which opdracht bevestigt ons dat micro in de bin map van de Persoonlijke map van dany is terug te vinden. Missie geslaagd.
De opdracht om micro voor alle gebruikers te installeren (inclusief de systeembeheerder root) wordt:
dany@main:~>curl -L https://github.com/zyedidia/micro/releases/download/v1.4.0/micro-1.4.0-linux64.tar.gz | sudo tar xvz -C /usr/local/bin --no-anchored 'micro' --strip-components 1
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 616 0 616 0 0 998 0 --:--:-- --:--:-- --:--:-- 998[sudo] wachtwoord voor root: 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 2 3802k 2 85547 0 0 6026 0 0:10:46 0:00:14 0:10:32 6428micro-1.4.0/micro 100 3802k 100 3802k 0 0 194k 0 0:00:19 0:00:19 --:--:-- 679k dany@main:~>which micro
/usr/local/bin/micro
Het enige verschil met de vorige installatie opdracht is dat het uitpakken nu als systeembeheerder wordt uitgevoerd (sudo
) en in de map /usr/local/bin wordt geplaatst.
Om deze opdracht te kunnen uitvoeren, moet je in het bezit zijn van het root wachtwoord ([sudo] wachtwoord voor root:).
Niets belet u het juiste archief via uw browser te downloaden. Het gedownloade archief uit te pakken en het bestand micro naar de correct map te kopiëren (~/bin/ of /usr/local/bin/).
Indien micro is opgenomen in de softwarebronnen van uw distributie kan je micro ook via deze weg installeren.
En waarom niet, je kunt de broncode van micro micro downloaden en zelf compileren.
Als je onder Linux het systeemklembord met micro wilt gebruiken, moet de opdracht xclip of xsel geïnstalleerd zijn.
dany@main:~> sudo zypper install xclip
[sudo] wachtwoord voor root:
Ophalen van metagegevens uit installatiebron 'openSUSE-Leap-42.3-Update' ....................................................[gereed]
Cache van installatiebron 'openSUSE-Leap-42.3-Update' wordt gebouwd .........................................................[gereed]
Gegevens van installatiebron laden...
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...
Het volgende NIEUWE pakket zal worden geïnstalleerd:
xclip
1 nieuw te installeren pakket.
Totale downloadgrootte: 25,7 KiB. Reeds in de cache: 0 B. Na de bewerking zal aanvullend 49,2 KiB worden gebruikt.
Doorgaan? [j/n/...? alle opties tonen] (j):
pakket xclip-0.12-4.1.x86_64 wordt opgehaald (1/1), 25,7 KiB ( 49,2 KiB uitgepakt)
Ophalen: xclip-0.12-4.1.x86_64.rpm ..........................................................................................[gereed]
Controleren op conflicten tussen bestanden: .................................................................................[gereed]
(1/1) Installeren van: xclip-0.12-4.1.x86_64 ................................................................................[gereed]
Micro start je zoals vele andere teksteditors met het bestand dat je wilt bewerken:
dany@main:~> micro Downloads/micro-1.4.0/README.md
Of je kunt tekst afkomstig van een opdracht rechtstreeks aanpassen met micro. Micro kan dan echter niet zelfstandig bepalen met welk bestandtype (-formaat) het te maken heeft en geeft de tekst weer zonder syntax markering.
Om de cursor te verplaatsen gebruik je de pijltoetsen of de muis. Tekst selecteer je door te slepen, met een dubbelklik selecteer je een woord en met een drie dubbele klik selecteer je een volledige regel.
Druk Ctrl+e om de opdrachtregel te activeren. Typ de opdracht help om een deelvenster met de helptekst van micro te openen. Met Ctrl+q (quit) sluit je het actieve deelvenster.
Opdrachten gebruiken opties, de opdracht help keybindings bijvoorbeeld opent het help deelvenster met een overzicht van te gebruiken sneltoetsen. De volgende help teksten zijn aanbevolen lectuur:
De helptekst help tutorial bevat een korte introductie tot de krachtige instelmogelijkheden van micro.
Eén functie die een goede teksteditor volgens mij moet hebben, is het bijhouden waaraan je de vorige keer werkte. Of m.a.w. de cursor staat bij het openen van de tekst op de juiste plaats om verder te werken. Dit stel je in micro met de volgende opdracht in:
set savecursor true
Met de set
opdracht heb ik de savecursor
optie ingeschakeld (true
).
Na het aanpassen van één optie (afwijken van de standaard configuratie) verschijnt er in de map ~/.config/micro/ het configuratiebestand settings.json. Dit kan je vanzelfsprekend ook aanpassen met micro:
dany@main:~> micro .config/micro/settings.json
Besef wel dat het aanpassen van het configuratiebestand met een teksteditor veel riskanter is dan het configureren vanuit micro zelf. In onderstaande afbeelding heeft micro het configuratiebestand geopend, wordt het help venster met de options weergegeven en staat de opdracht om de ongedaan maken buffer op te slaan te activeren klaar om uitgevoerd te worden.
Om via een SSH-verbinding op afstand te werken, maak ik gebruik van sshfs waarmee je een bestandssysteem op afstand lokaal beschikbaar kunt maken. Zo hoef je micro of een andere editor enkel lokaal te installeren en in te stellen en kan je gebruik maken van het lokale klembord bij het kopiëren, knippen en plakken:
dany@main:~> mkdir pindabook
Zorgt voor een lokale map waar we de inhoud van het bestandssysteem op afstand kunnen bereiken.
dany@main:~> sshfs -o follow_symlinks dany@pindabook: pindabook/
Password:
Maakt als gebruiker dany een SSH verbinding naar het apparaat met de naam pindabook en maak deze bereikbaar via de map pindabook/ (aan deze map koppelen). De optie follow_symlinks zorgt ervoor dat snelkoppelingen (symbolische koppelingen of symlinks) verwijzen naar een map op het apparaat op afstand.
dany@main:~> micro pindabook/Documenten/Systeembeheer/rsyncSNT.sh
Met deze opdracht open je het bestand rsyncSnt.sh in de map Documenten/Systeembeheer/ in de Persoonlijke map van dany op het apparaat op afstand. Je kunt deze in micro aanpassen juist alsof het een lokaal tekstbestand is. Na het aanpassen en opslaan van het tekstbestand kan je de SSH verbinding verbreken met de opdracht:
dany@main:~>fusermount -zu pindabook/
dany@main:~>ls -l pindabook/
totaal 0
De tweede opdracht bewijst dat de map leeg is en de SSH verbinding verbroken werd.
Deze editor heb ik pas ontdekt en ik ben al helemaal verkocht. Zo zijn de gebruikte kleuren goed te lezen, is micro eenvoudig te gebruiken en in te stellen en bevat deze alle functies die ik in een teksteditor nodig heb. Uitgezonderd misschien het automatisch aanvullen, maar daar komt hopelijk snel verandering in. Voor mij is het eveneens belangrijk om één editor op verschillende platform te kunnen gebruiken (Linux, Windows, macOS, Raspberry Pi).