Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor
Verfasst: 06.12.2024 00:25:44
Zur Feier des Tages darf ich heute an meinem Geburtstag das 6.Türchen öffnen.
Einleitung
Eines meiner wichtigsten Werkzeuge am Rechner ist definitiv der Texteditor. Hier gibt es eine sehr große Auswahl, egal ob grafisch oder textbasiert. Bei letzteren sind die meistgenutzten vmtl. nano, vim, micro und mcedit. Gerade mcedit war über Jahrzehnte mein persönlicher Favorit!
Modus-basierte Editoren wie Vim waren mir hingegen immer sehr suspekt. Ich wusste zumindest, dass ich mit ":q" ganz schnell wieder aus Vim raus komme.
Nun, Helix hat da so einiges positiv verändert und darum ist dies definitiv mein Programm des Jahres 2024!
Was ist Helix?
Helix ist ein in Rust geschriebener terminalbasierter Text-Editor, der sich als nächste Generation hinter Programmen wie Vim, NeoVim und Kakoune einreiht.
Besonders machen Helix vor allem 3 Punkte:
Dies ist ein Konzept, welches bereits bei Kakoune eingeführt wurde.
Zum Vergleich, in Vim wird eine Aktion sofort und direkt ausgeführt, weshalb z.B. mit "dd" eine Zeile sofort gelöscht wird.
In Helix wird die Zeile zuvor markiert und erst danach gelöscht. Dies gibt ein klares Feedback, mit welchem Textbereich man gerade arbeitet. Eine Zeile wird somit mit "x" markiert und erst dann mit "d" gelöscht. Dies ist sehr ähnlich zu dem, wenn man den Textbereich mit der Maus auswählt.
Der Cursor im "normal-mode" kann hier übrigens bereits als "Auswahl" für ein einzelnes Zeichen betrachtet werden.
Bedienkonzepte
Es gibt mehr oder weniger 3 davon:
Caps-Lock
In Helix arbeitet man (neben den "Minor Modes") in 3 Modi:
Installation
https://gitlab.com/interception/linux/plugins/caps2esc
Hier müssen folgende Zeilen eingefügt werden:
Per Standard wird die Escape-Taste mit der Caps-Lock-Taste getauscht. Da meine Finger jedoch gerne automatisch zu ESC hoch wandern, nutze ich "Modus 1", was somit nur die Caps-Lock-Taste modifiziert und ESC unverändert lässt. Dazu einfach die JOB-Zeile oben wie folgt ändern:
Danach den Service neu starten:
Muskelgedächtnis
Hier sind wir auch schon bei einem weiteren sehr wichtigen Punkt. Durch jahrelanges Arbeiten am PC hat man sich ein sogenanntes Muskelgedächtnis antrainiert. Heißt, die Finger wissen intuitiv, wo welche Taste (Funktion) liegt. Und dies kann man nicht mal schnell ändern. Ernsthaft!!!
Gerade deshalb ist die großartige Konfigurierbarkeit von Helix so wichtig.
Helix deckt alle Bedienkonzepte ab, auch Maus und Cursor-Tasten, was allerdings offiziell nicht empfohlen wird. Klar, am schnellsten ist definitiv die Navigation mittels Tasten wie "wbe" und "hjkl".
Installation
Von nachfolgender Seite das aktuelle Linux-Image herunter laden, oder ggf. auch einfach das AppImage zum Testen verwenden.
https://github.com/helix-editor/helix/releases
Das AppImage muss nur ausführbar gemacht werden – fertig.
Das Linux-Image kann man hingegen z.B. nach /opt entpacken und danach von /usr/local/bin einen symbolischen Link zur enthaltenen "hx"-Datei anlegen. So kann Helix jederzeit mit "hx" aufgerufen werden.
Einstellungen
Helix hat eine sehr gute und wirklich durchdachte Standard-Konfiguration, mit der auch genau so gearbeitet werden kann.
Ein paar Einstellungen machen allerdings doch Sinn, diese werden hauptsächlich in folgender Datei vorgenommen:
Hier ein paar Einstellungen, die ich generell empfehlen kann und gerne so übernommen werden können:
Key-Mapping
Was die Tastenbelegung betrifft, habe ich einige Änderungen vorgenommen. Die Tastenbelegung ist nämlich auf die US-Tastatur ausgelegt, was beim deutschen Layout .... bedingt ideal ist.
Gerade die "Homerow" sollte mit den wichtigsten Funktionen versehen werden, da diese Tasten nun mal am schnellsten erreicht werden können.
Z.B. liegen 'ö' und 'ä' zwar perfekt auf der "Homerow", sind aber nicht belegt. Hingegen sind '[' und ']' nur wesentlich unhandlicher mit "Alt Gr" erreichbar.
Zudem wird ja durch "caps2esc" die Caps-Lock-Taste zu einer weiteren "Strg"-Taste, was Kombinationen mit "Control" um ein vielfaches interessanter machen.
Nun, man hat quasi alle Möglichkeiten und kann alles sehr einfach nach eigenem Gusto belegen.
Als Inspiration kann gerne ein Blick in meine derzeitige Konfiguration geworfen werden:
https://gitlab.com/MN77/helix-config
Die Helix-Dokumentation ist auch gut aufgebaut, dort kann alles nachgelesen werden:
https://docs.helix-editor.com/
Tipp:
Änderungen immer in allen 3 Modi (normal,select,insert) vornehmen! Natürlich entsprechend angepasst.
Schlusswort
Ach ja, beenden kann man Helix auch mit ":q".
Bei mir reicht dazu (sehr häufig verwendet) ein einfaches Drücken der Taste "q", bzw. "Q" zum speichern und beenden.
Übrigens, bzgl. "post-modern":
Dies ist ein Witz! Wenn "Neovim" das moderne "Vim" ist, dann ist "Helix" eben "post-modern".
Ich hoffe, es war für Euch der ein oder andere interessante Impuls dabei. Nun wünsche ich Euch viel Spaß beim Ausprobieren und noch einen schönen Advent!
P.S.: Dieser Post wurde auch mit Helix erstellt.
Einleitung
Eines meiner wichtigsten Werkzeuge am Rechner ist definitiv der Texteditor. Hier gibt es eine sehr große Auswahl, egal ob grafisch oder textbasiert. Bei letzteren sind die meistgenutzten vmtl. nano, vim, micro und mcedit. Gerade mcedit war über Jahrzehnte mein persönlicher Favorit!
Modus-basierte Editoren wie Vim waren mir hingegen immer sehr suspekt. Ich wusste zumindest, dass ich mit ":q" ganz schnell wieder aus Vim raus komme.
Nun, Helix hat da so einiges positiv verändert und darum ist dies definitiv mein Programm des Jahres 2024!
Was ist Helix?
Helix ist ein in Rust geschriebener terminalbasierter Text-Editor, der sich als nächste Generation hinter Programmen wie Vim, NeoVim und Kakoune einreiht.
Besonders machen Helix vor allem 3 Punkte:
- "Selection before action"-Konzept
- "Out of the box" ist alles wichtige bereits integriert, inklusive LSP-Unterstützung!!!
- Komplett frei konfigurierbar
Dies ist ein Konzept, welches bereits bei Kakoune eingeführt wurde.
Zum Vergleich, in Vim wird eine Aktion sofort und direkt ausgeführt, weshalb z.B. mit "dd" eine Zeile sofort gelöscht wird.
In Helix wird die Zeile zuvor markiert und erst danach gelöscht. Dies gibt ein klares Feedback, mit welchem Textbereich man gerade arbeitet. Eine Zeile wird somit mit "x" markiert und erst dann mit "d" gelöscht. Dies ist sehr ähnlich zu dem, wenn man den Textbereich mit der Maus auswählt.
Der Cursor im "normal-mode" kann hier übrigens bereits als "Auswahl" für ein einzelnes Zeichen betrachtet werden.
Bedienkonzepte
Es gibt mehr oder weniger 3 davon:
- Maus + Tastatur (am weitesten verbreitet)
- Nur Tastatur, Navigation mit den Cursor-Tasten, Pos1, Ende, ...
- Nur Tastatur, Navigation mit h,j,k,l, ...
Caps-Lock
In Helix arbeitet man (neben den "Minor Modes") in 3 Modi:
- Normal (Navigation) (jederzeit mit ESC)
- Insert (Texteingabe) (z.B. mit i,I,a,A,c,r)
- Visual (Selektion) (mit "v")
Installation
https://gitlab.com/interception/linux/plugins/caps2esc
Code: Alles auswählen
apt install interception-caps2esc
editor /etc/interception/udevmon.d/udevmon.yaml
Code: Alles auswählen
- JOB: "interception -g $DEVNODE | caps2esc | uinput -d $DEVNODE"
DEVICE:
EVENTS:
EV_KEY: [KEY_CAPSLOCK, KEY_ESC]
Code: Alles auswählen
- JOB: "interception -g $DEVNODE | caps2esc -m 1 | uinput -d $DEVNODE"
Code: Alles auswählen
systemctl restart udevmon
Hier sind wir auch schon bei einem weiteren sehr wichtigen Punkt. Durch jahrelanges Arbeiten am PC hat man sich ein sogenanntes Muskelgedächtnis antrainiert. Heißt, die Finger wissen intuitiv, wo welche Taste (Funktion) liegt. Und dies kann man nicht mal schnell ändern. Ernsthaft!!!
Gerade deshalb ist die großartige Konfigurierbarkeit von Helix so wichtig.
Helix deckt alle Bedienkonzepte ab, auch Maus und Cursor-Tasten, was allerdings offiziell nicht empfohlen wird. Klar, am schnellsten ist definitiv die Navigation mittels Tasten wie "wbe" und "hjkl".
Installation
Von nachfolgender Seite das aktuelle Linux-Image herunter laden, oder ggf. auch einfach das AppImage zum Testen verwenden.
https://github.com/helix-editor/helix/releases
Das AppImage muss nur ausführbar gemacht werden – fertig.
Das Linux-Image kann man hingegen z.B. nach /opt entpacken und danach von /usr/local/bin einen symbolischen Link zur enthaltenen "hx"-Datei anlegen. So kann Helix jederzeit mit "hx" aufgerufen werden.
Einstellungen
Helix hat eine sehr gute und wirklich durchdachte Standard-Konfiguration, mit der auch genau so gearbeitet werden kann.
Ein paar Einstellungen machen allerdings doch Sinn, diese werden hauptsächlich in folgender Datei vorgenommen:
Code: Alles auswählen
~/.config/helix/config.toml
Code: Alles auswählen
[editor]
true-color = true
color-modes = true
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.file-picker]
hidden = false
[editor.smart-tab]
enable = false
[editor.statusline]
mode.normal = "NORMAL"
mode.insert = "INSERT"
mode.select = "SELECT"
[editor.soft-wrap]
enable = false
Key-Mapping
Was die Tastenbelegung betrifft, habe ich einige Änderungen vorgenommen. Die Tastenbelegung ist nämlich auf die US-Tastatur ausgelegt, was beim deutschen Layout .... bedingt ideal ist.
Gerade die "Homerow" sollte mit den wichtigsten Funktionen versehen werden, da diese Tasten nun mal am schnellsten erreicht werden können.
Z.B. liegen 'ö' und 'ä' zwar perfekt auf der "Homerow", sind aber nicht belegt. Hingegen sind '[' und ']' nur wesentlich unhandlicher mit "Alt Gr" erreichbar.
Zudem wird ja durch "caps2esc" die Caps-Lock-Taste zu einer weiteren "Strg"-Taste, was Kombinationen mit "Control" um ein vielfaches interessanter machen.
Nun, man hat quasi alle Möglichkeiten und kann alles sehr einfach nach eigenem Gusto belegen.
Als Inspiration kann gerne ein Blick in meine derzeitige Konfiguration geworfen werden:
https://gitlab.com/MN77/helix-config
Die Helix-Dokumentation ist auch gut aufgebaut, dort kann alles nachgelesen werden:
https://docs.helix-editor.com/
Tipp:
Änderungen immer in allen 3 Modi (normal,select,insert) vornehmen! Natürlich entsprechend angepasst.
Schlusswort
Ach ja, beenden kann man Helix auch mit ":q".
Bei mir reicht dazu (sehr häufig verwendet) ein einfaches Drücken der Taste "q", bzw. "Q" zum speichern und beenden.
Übrigens, bzgl. "post-modern":
Dies ist ein Witz! Wenn "Neovim" das moderne "Vim" ist, dann ist "Helix" eben "post-modern".
Ich hoffe, es war für Euch der ein oder andere interessante Impuls dabei. Nun wünsche ich Euch viel Spaß beim Ausprobieren und noch einen schönen Advent!
P.S.: Dieser Post wurde auch mit Helix erstellt.