Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Smalltalk
Antworten
Benutzeravatar
mn77de
Beiträge: 187
Registriert: 23.11.2003 16:53:53
Wohnort: Übersee
Kontaktdaten:

Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von mn77de » 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! 8)

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. :lol:

Nun, Helix hat da so einiges positiv verändert und darum ist dies definitiv mein Programm des Jahres 2024!

5219

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
Selection before action?
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, ...
Die Steuerung mit der Maus ist heutzutage am weitesten verbreitet ... sehr einfach und intuitiv. Eine Navigation mittels Cursor-Tasten ist auch noch sehr logisch. Hingegen werden für die Steuerung mittels "hjkl" mehrere Modi benötigt, was etwas Einarbeitungszeit erfordert. Der Vorteil ist hier allerdings, dass die Hände permanent auf der Tastatur (Home-Row) verbleiben können. Alle Aktionen können von hier aus erfolgen. Egal ob Texteingabe, Selektion, Copy-Paste, Navigation oder Kommandos wie Öffnen, Schließen und Beenden. Dies führt, nach einer Einarbeitungszeit, zu einer deutlich schnelleren Schreibgeschwindigkeit. Die Hände wandern weniger hin und her und auch die Augen können viel mehr auf dem Bildschirm beim zu bearbeitenden Text bleiben. Man ist somit viel fokussierter und schneller.

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")
Zum Wechseln in den Normalmode wird "Escape" sehr häufig verwendet. Eine Taste, die hierzu wirklich sehr ungünstig liegt. Es gibt somit einige Workarounds, am besten hat sich für mich hier das Tool "caps2esc" bewährt. Damit wird die meist ziemlich unnütze "Caps Lock"-Taste, die eigentlich ideal auf der Homerow beim kleinen Finger liegt, in Escape und Control umgewandelt. So wird eine der am wenigsten gebrauchten, aber bestens gelegenen, Tasten zu einer der wichtigsten Tasten überhaupt!

Installation
https://gitlab.com/interception/linux/plugins/caps2esc

Code: Alles auswählen

apt install interception-caps2esc
editor /etc/interception/udevmon.d/udevmon.yaml
Hier müssen folgende Zeilen eingefügt werden:

Code: Alles auswählen

- JOB: "interception -g $DEVNODE | caps2esc | uinput -d $DEVNODE"
    DEVICE:
      EVENTS:
        EV_KEY: [KEY_CAPSLOCK, KEY_ESC]
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:

Code: Alles auswählen

- JOB: "interception -g $DEVNODE | caps2esc -m 1 | uinput -d $DEVNODE"
Danach den Service neu starten:

Code: Alles auswählen

systemctl restart udevmon
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!!! :wink: :lol:
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. :D
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
Hier ein paar Einstellungen, die ich generell empfehlen kann und gerne so übernommen werden können:

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. :wink:
Debian stable, AwesomeWM, Mate, Helix, LF, Git, Java, Xemy, JayMo, ...
OpenSource! :THX:

Benutzeravatar
hikaru
Moderator
Beiträge: 13896
Registriert: 09.04.2008 12:48:59

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von hikaru » 06.12.2024 09:45:27

Zunächst: Herzlichen Glühwein zum Geburtstag! ;)
Ein schöner Beitrag! Helix werde ich mir sicher mal anschauen. Schade, dass er nicht im Debianrepo ist.
mn77de hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 00:25:44
Selection before action?
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.
Wenn du von vim mehr als nur ":q" kennen würdest, dann wäre dir aufgefallen, dass "selection before action" bereits in vi(m) existiert. ;)
Eine ganze Zeile markiert man z.B. in vim mit "V" (also Shift+v), von der aktuellen Cursorposition bis zum Ende der Zeile mit "v$", bzw. zum Anfang mit "v^". Und ohne Helix bisher je gesehen zu haben, vermute ich, das ist dort ganz genauso.
Im Grunde liest sich alles was du hier zur Tastatursteuerung geschrieben hast wie eine Anleitung für vim, inklusive der Steuerung mit h,j,k,l. Wenn du dich damit also unter Helix angefreundet hast, dann kannst du ab jetzt auch vim. :mrgreen:
mn77de hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 00:25:44
Zum Wechseln in den Normalmode wird "Escape" sehr häufig verwendet. Eine Taste, die hierzu wirklich sehr ungünstig liegt. Es gibt somit einige Workarounds, am besten hat sich für mich hier das Tool "caps2esc" bewährt. Damit wird die meist ziemlich unnütze "Caps Lock"-Taste, die eigentlich ideal auf der Homerow beim kleinen Finger liegt, in Escape und Control umgewandelt. So wird eine der am wenigsten gebrauchten, aber bestens gelegenen, Tasten zu einer der wichtigsten Tasten überhaupt!

Installation
https://gitlab.com/interception/linux/plugins/caps2esc

Code: Alles auswählen

apt install interception-caps2esc
editor /etc/interception/udevmon.d/udevmon.yaml
Hier müssen folgende Zeilen eingefügt werden:

Code: Alles auswählen

- JOB: "interception -g $DEVNODE | caps2esc | uinput -d $DEVNODE"
    DEVICE:
      EVENTS:
        EV_KEY: [KEY_CAPSLOCK, KEY_ESC]
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:

Code: Alles auswählen

- JOB: "interception -g $DEVNODE | caps2esc -m 1 | uinput -d $DEVNODE"
Danach den Service neu starten:

Code: Alles auswählen

systemctl restart udevmon
Danke hierfür! In Vorbereitung für mein Türchen am 24. bin ich gestern ebenfalls über die Kette interception | caps2esc | uinput gestolpert, bekam meinen Anwendungsfall aber nicht auf Anhieb zum Laufen.
Kennst du dich hiermit näher aus? Sehe ich das z.B. richtig, dass man mit caps2esc in Prinzip beliebige Tasten remappen kann? Ich hatte gestern bei einem noch einfacheren ähnlichen Programm direkt den C-Code editiert und neu compiliert.

dasebastian
Beiträge: 2124
Registriert: 12.07.2020 11:21:17

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von dasebastian » 06.12.2024 09:48:36

Hoi Michael, ich mache auch was geht im Texteditor, bin da aber überzeugter Debianmicro-Benutzer.

Die Einarbeitungszeit in (Neo)Vim erschien mir immer als zu große Hürde und Micro schien da so ein nettes Zwischendings. Dein Türchen hat mir jetzt aber Lust gemacht, Helix mal auszuprobieren in den Feiertagen, wenn's vielleicht mal ein bißchen ruhiger läuft. Danke dafür. :THX:

dasebastian
Beiträge: 2124
Registriert: 12.07.2020 11:21:17

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von dasebastian » 06.12.2024 09:50:48

hikaru hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 09:45:27
Schade, dass er nicht im Debianrepo ist.
Das fand ich eine Zeit lang bei Debianmicro und Debianlf auch - und plötzlich waren sie da!

Benutzeravatar
whisper
Beiträge: 3373
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von whisper » 06.12.2024 10:28:03

Aufwändiges Türchen, :THX:
der Editor ist nicht meins, aber womit du recht hast ist CAPS LOCK

Immer, wenn man mal wieder am schnellen tippen ist, trifft man nicht genau die TAB oder Shift Taste, sondern kommt auf CAPS-LOCK.

Das ist die Geißel der modernen Zivilisation!
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt. 😉

uname
Beiträge: 12396
Registriert: 03.06.2008 09:33:02

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von uname » 06.12.2024 11:07:48

Den Editor Helix kenne ich nicht. Ich verwende vor allen Vim. Wer Vim üben will, kann mal vimtutor (Debianvim-runtime) ausprobieren. Sollte standardmäßig vorhanden sein.

Etwas am Rande. Egal welchen Editor man mag. Als Linux-Anwender sollte man in der Lage sein einen standardmäßig installierten Editor wie z.B. Vim oder nano mindestens minimal bedienen zu können (Datei öffnen, Datei ändern, Datei schließen). Denn viele Linux-Einsteiger scheitern schon daran, dass sie es nicht schaffen als root (bzw. mit sudo) eine Textdatei zu editieren. Dann wird immer nach GUI, GUI-Editor und wie man in der GUI root wird gefragt.

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von chrbr » 06.12.2024 11:39:34

Hallo mn77de,
ich wünsche Dir auch alles Gute zum Geburtstag.
Den Helix-Editor habe ich mir bisher noch nicht angeschaut, er ist aber auf meiner Liste.
Unter FreeBSD gibt es ihn sogar als Paket. Ansonsten nutze ich schon seit Ewigkeiten vim.
uname hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 11:07:48
Etwas am Rande. Egal welchen Editor man mag. Als Linux-Anwender sollte man in der Lage sein einen standardmäßig installierten Editor wie z.B. Vim oder nano mindestens minimal bedienen zu können (Datei öffnen, Datei ändern, Datei schließen).
Vor vielen Jahren musste ich mal ein Rettungssystem verwenden, auf dem kein vi installiert war. Stattdessen war es ein "einfacher" Editor, etwas in der Art von pico, nano oder so. Das hat mich wirklich in den Wahnsinn getrieben. Irgendwie habe ich das dann doch überstanden :mrgreen: . Beim emacs wüsste ich die Befehle für Speichern und Schließen auch nicht aus dem Kopf.

Nochmals vielen Dank für das gelungene Türchen und lass Dich gebührend feiern,
Christoph

TuxPeter
Beiträge: 2016
Registriert: 19.11.2008 20:39:02
Lizenz eigener Beiträge: MIT Lizenz

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von TuxPeter » 06.12.2024 12:00:07

Ja, vielen Dank für diesen feinen Beitrag und ebenfalls häppie börsdäii 2 U!!

Für mich ist der Grund, warum ich, wo es nur geht, das wortkissen (wordpad) benutze, der Fließtext bzw. der automatische Zeilenumbruch. In einer lang zurückliegenden vim-Übungsphase habe ich versucht, das dort auch hinzubekommen, geht dort wohl aber nicht wirklich. (Nur so etwas ähnliches, mit vielen Klimmzügen.)

Da wäre meine Frage: Wie sieht das damit in Helix aus? Ich mag nämlich nicht dauernd verschiedenen Editoren benutzen, einen für textorientierte Arbeiten mit Absätzen und den anderen für script- und programmorientierte Aufgaben.

fischig
Beiträge: 4116
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von fischig » 06.12.2024 12:09:18

TuxPeter hat geschrieben:Für mich ist der Grund, warum ich, wo es nur geht, das wortkissen (wordpad) benutze, der Fließtext bzw. der automatische Zeilenumbruch.
Debianfeatherpad kann das auch.

Benutzeravatar
whisper
Beiträge: 3373
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von whisper » 06.12.2024 12:38:29

an meinem Geburtstag
Shit überlesen.
Also ein echte Nikolausi
Alles Gute dazu und Trinke nicht zuviel Glühwein!
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt. 😉

dasebastian
Beiträge: 2124
Registriert: 12.07.2020 11:21:17

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von dasebastian » 06.12.2024 16:28:52

TuxPeter hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 12:00:07
... der Fließtext bzw. der automatische Zeilenumbruch.
Gibt es in da für Vim/Neovim (?) nicht so ein Plugin? Goyo-Mode oder so?

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von chrbr » 06.12.2024 16:42:09

dasebastian hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 16:28:52
TuxPeter hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 12:00:07
... der Fließtext bzw. der automatische Zeilenumbruch.
Gibt es in da für Vim/Neovim (?) nicht so ein Plugin? Goyo-Mode oder so?
Wenn ich das mit dem Fließtext richtig verstanden habe, dann hat er keine Zeilenumbrüche, wo man nicht auf die Enter-Taste gekopft hat. Wenn man

Code: Alles auswählen

set textwidth=<riesig>
set wrap
einstellt, dann wird der Text nur in der Anzeige umbebrochen. Die Zeilen können aber <riesig> lang werden. Vielleicht kann man auch eine Zeichenkette oder Konfiguration angeben, die den Zeilenumbruch in der Datei abschaltet. Das habe ich bisher nicht benötigt.

Huo
Beiträge: 778
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von Huo » 06.12.2024 16:48:41

Auch von mir Glückwünsche zum Geburtstag und ein herzliches Dankeschön für die instruktive Vorstellung des mir bislang unbekannten, aber vielversprechenden Editors! Als langjähriger vim-User fühle ich mich mit helix nicht völlig fremd ... :)

Das violette Standard-Design fand ich absolut grausig, habe dann aber im Helix-Wiki eine riesige Auswahl an alternativen Themen entdeckt. Da findet sicher jeder was Passendes. Einfach Thema in ~/.config/helix/themes/ speichern und in der ~/.config/helix/config.toml zuoberst als theme = "Themenname" eintragen.
TuxPeter hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 12:00:07
Für mich ist der Grund, warum ich, wo es nur geht, das wortkissen (wordpad) benutze, der Fließtext bzw. der automatische Zeilenumbruch. [...]

Da wäre meine Frage: Wie sieht das damit in Helix aus?
Meinst Du einen "weichen" (nur in der Anzeige im Editor) oder einen "harten" Zeilenumbruch (Zeilenvorschub im Dokument nach Erreichen einer vorkonfigurierten Zeilenlänge)? Ersteres bekomme ich in Helix mit

Code: Alles auswählen

[editor.soft-wrap]
enable = true
in der config.toml hin.

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von chrbr » 06.12.2024 17:10:07

Jetzt habe ich mal Helix installiert. Einen Punkt finde ich jetzt schon erwähnenswert. Unten ist ein Screenshot, der hoffentlich halbwegs lesbar ist.

gallery/image/5222

Mit : kommt man in den Befehlsmodus. Während man tippt erscheine eine Liste mit passenden Befehlen, duch die man sich mit der Tabulator-Taste hangeln kann. Das ist wirklich extrem einsteigerfreundlich.

dasebastian
Beiträge: 2124
Registriert: 12.07.2020 11:21:17

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von dasebastian » 06.12.2024 17:22:53

chrbr hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 17:10:07
Das ist wirklich extrem einsteigerfreundlich.
Diese Funktion liebe ich auch an Micro. Da muß man das Anzeigen aller möglichen Befehle aber zumindest mit einmal Tab anstoßen.

Und ich schließe mich endlich whisper an, auch von mir Alles Gute! :facepalm: :lol:

Benutzeravatar
Livingston
Beiträge: 1813
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von Livingston » 06.12.2024 18:17:21

Alles Gute zum Burzeltag :D

Als eingefleischter vi-Fan hast Du mir Helix echt schmackhaft gemacht, muss ich wohl mal ganz schnell austesten.
Danke für den Tipp!
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

Benutzeravatar
ralli
Beiträge: 4377
Registriert: 02.03.2008 08:03:02

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von ralli » 06.12.2024 19:40:13

Herzlichen Glückwunsch zum Geburtstag. Deinen vorgestellten und favorisierten Editor Helix werde ich mir auf jeden Fall anschauen. Danke für die Vorstellung.

Grüße ralli

Benutzeravatar
paedubucher
Beiträge: 932
Registriert: 22.02.2009 16:19:02
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz
Kontaktdaten:

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von paedubucher » 06.12.2024 20:05:56

Herzliche Gratulation zum Geburtstag ‒ und zu diesem Türchen!

Lässt sich der Texteditor auch direkt über cargo installieren?
Habe nun, ach! Java
Python und C-Sharp,
Und leider auch Visual Basic!
Durchaus programmiert mit heissem Bemühn.
Da steh' ich nun, ich armer Tor!
Und bin so klug als wie zuvor.

Benutzeravatar
mn77de
Beiträge: 187
Registriert: 23.11.2003 16:53:53
Wohnort: Übersee
Kontaktdaten:

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von mn77de » 06.12.2024 23:02:04

Hallo in die Runde und vielen herzlichen Dank für all die Geburtstagswünsche!!! :hail:

Sorry dass ich mich erst jetzt melden kann, der Tag war heute doch sehr viel turbulenter als erwartet. :lol:

Es freut mich sehr, dass auf mein "Türchen" so viele Reaktionen und Fragen kamen.
Heute wird mir zu spät, aber ich werde gleich morgen früh alles beantworten. 8)
Debian stable, AwesomeWM, Mate, Helix, LF, Git, Java, Xemy, JayMo, ...
OpenSource! :THX:

Huo
Beiträge: 778
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von Huo » 07.12.2024 11:05:18

Noch eine kleine Frage zum Helix-Editor. Ich möchte prinzipiell ohne Syntax-Highlighting programmieren (da die bunten Farben mich persönlich mehr ablenken als die Lesbarkeit des Codes zu fördern). Mit dem Kommando

Code: Alles auswählen

:set-language text
kann ich das Syntax-Highlighting jedesmal aufs Neue deaktivieren. Lässt sich das auch persistent in der Konfiguration einstellen? Ich hab's nicht hinbekommen.

Benutzeravatar
mn77de
Beiträge: 187
Registriert: 23.11.2003 16:53:53
Wohnort: Übersee
Kontaktdaten:

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von mn77de » 07.12.2024 13:09:38

Es freut mich sehr, dass Helix auf breites Interesse stößt und auf meinen Artikel so viele Fragen kamen! :THX:
Der Übersicht halber werde ich nicht alles voll zitieren und nun einmal gesammelt antworten.


Debian-Repo
Das Debianrepo hinkt da mittlerweile leider sehr hinterher. Es gibt derzeit ein paar tausend Projekte, die noch auf einen Maintainer warten. Aber ich gehe sehr davon aus, dass Helix ins Debianrepo aufgenommen wird.
hikaru hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 09:45:27

Selection before action
Ja, man kann auch in "Vim" mit "V" etwas markieren und diesen Visual/Selection-Mode hat Helix auch. Allerdings ist dies hier nicht gemeint.

Bei Helix wird per Standard IMMER zuerst ausgewählt, bevor man etwas verändern kann. Allein der Cursor ist bereits die Auswahl für ein einzelnes Zeichen. Zum Beispiel gibt es den Befehl "dd" von Vim in Helix so nicht. Hier gibt es dafür "xd" für Zeile markieren und löschen. Ebenso verhalten sich z.B. "w", "b" und "e" in Helix anders als in Vim.
Es ist aber natürlich möglich, sich eine Vim-Ähnliche Tastenbelegung einzurichten.

Und ja, Helix, Vi, Vim, Neovim und Kakoune sind alle in der gleichen Kategorie. Es gibt bzgl. der Tastenbelegung hier sehr viele Ähnlichkeiten ... aber halt doch auch gravierende Unterschiede.
hikaru hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 09:45:27

Caps2Esc
Mit "caps2esc" kann man leider nur caps und esc verändern. Aber mit "interception" ist sicherlich noch sehr viel mehr möglich. So weit habe ich mich aber noch nicht damit beschäftigt.

Weitere Infos zu "caps2esc" liefert die Manpage:

Code: Alles auswählen

man caps2esc
hikaru hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 09:45:27

Gewohnte Umgebung
Kann absolut nachvollziehen, dass man natürlich gerne bei seinen Lieblingsprogrammen bleibt. Gerade wenn hier z.B. viel Zeit in die Konfiguration investiert wurde. Aber es ist auch interessant, mal über den Tellerrand zu schauen.

Da dir "lf" und "Awesome" so gut gefallen, kann ich mir gut vorstellen dass du an Helix auch gefallen findest. Braucht aber vielleicht etwas Einarbeitungszeit.
dasebastian hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 09:48:36

Unnütze Tasten
Ja, CapsLock ist eine der unnützesten Tasten überhaupt ... und das noch auf der Homerow! Total unsinnig!
Aber mit "caps2esc" lässt sich dies bequem ändern. Hat bei mir etwas Umgewöhnung gebraucht, aber nun kann ich diese Konfiguration wirklich nur empfehlen.

Übrigens "Rollen" und "Pause/Unterbr" sind auch noch zwei mittlerweile sehr nutzlose Tasten ... Relikte aus früherer Zeit.
Bei mir kann ich (AwesomeWM) mit "Rollen" ein Fenster auf Master oder Slave setzen, das ist sehr praktisch.
Und "Pause/Unterbr" schließt ein Fenster. So konfiguriert nutze ich die Tasten mittlerweile sehr viel öfter.
whisper hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 10:28:03

Tutor
Auch für Helix gibt es ein integriertes Tutorial, welches derzeit leider nur in englisch verfügbar ist:

Code: Alles auswählen

hx --tutor
uname hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 11:07:48

Automatischer Zeilenumbruch
In Helix kann man den automatischen Zeilenumbruch in der config aktivieren oder deaktivieren. Bei mir ist er per Standard deaktiviert und kann mit "<space>W" umgeschalten werden. Hier die betreffenden Zeilen für die config.toml:

Code: Alles auswählen

[editor.soft-wrap]
enable = false

[keys.normal.space]
W = ":toggle soft-wrap.enable"
Mit Helix kann man sich echt vieles nach den eigenen Wünschen konfigurieren.
Helix eignet sich zum Bearbeiten von Textdateien, sowie zum Programmieren. Eine IDE kann er natürlich nicht ersetzen, durch die LSP-Unterstützung ist allerdings bereits sehr viel möglich.
TuxPeter hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 12:00:07

Plugins
Helix unterstützt derzeit noch keine Plugins. Allerdings ist bereits so viel mit an Board, dass man gut ohne Plugins auskommt. Eine aufwändige Konfiguration mit vielen Plugins, siehe NeoVim, ist bei Helix einfach nicht nötig. Einfach starten und verwenden – fertig.
Ggf. noch ein paar Sachen fein justieren.
dasebastian hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 16:28:52

Themes
Das Standard-Theme fand ich auch nicht besonders. Empfehlen kann ich "base16_transparent", das ist sehr schlicht gehalten. Man kann aber auch einfach ":theme<space>" eintippen und dann mit <Tab> durch die große Auswahl an Themes blättern.

Fest schreiben kann man dies auch in der "config.toml" ganz oben mit:

Code: Alles auswählen

theme = "base16_transparent"
Oder man passt ein bestehendes Theme an, so wie ich es gemacht habe. Das neue Theme dann einfach unter "~/.config/helix/themes" ablegen, schon kann es verwendet werden.
Huo hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 16:48:41

Integrierte Hilfe
Helix ist einerseits sehr schnell, andererseits aber auch sehr einsteigerfreundlich. Man kann mit <Tab> durch die verfügbaren Befehle blättern und sieht auch gleich, was diese genau bewirken.

Zusätzlich lässt sich mit "<space>?" die integrierte Hilfe öffnen, wo gezielt nach Befehlen und Tastenbelegungen gesucht werden kann. Sehr praktisch!!!
chrbr hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 17:10:07

Installation mit Cargo
Soweit ich das sehe und in Foren lese, ist dies derzeit nicht möglich.
paedubucher hat geschrieben: ↑ zum Beitrag ↑
06.12.2024 20:05:56

Kein Syntax-Highlighting
Da ich hierzu keinen Befehl gefunden habe dürfte die einfachste Methode sein, ein eigenes Theme zu erstellen. Dies ist aber wirklich sehr einfach! Dort dann einfach die entsprechenden Werte mit der Standard-Schriftfarbe definieren.
  1. Such dir ein für Dich stimmiges Theme aus
  2. Kopier die entsprechende Datei von "<helix-dir>/runtime/themes/" nach "~/.config/helix/themes" und gib ihr einen neuen Namen
  3. Setze für die entsprechenden Werte (z.B. von "variable" bis "namespace") die Textfarbe.
  4. Dann in Helix mit ":theme <dein_theme>" testen oder gleich in der config.toml festschreiben.
Huo hat geschrieben: ↑ zum Beitrag ↑
07.12.2024 11:05:18
Debian stable, AwesomeWM, Mate, Helix, LF, Git, Java, Xemy, JayMo, ...
OpenSource! :THX:

Huo
Beiträge: 778
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von Huo » 07.12.2024 15:24:18

mn77de hat geschrieben: ↑ zum Beitrag ↑
07.12.2024 13:09:38
Kein Syntax-Highlighting
Da ich hierzu keinen Befehl gefunden habe dürfte die einfachste Methode sein, ein eigenes Theme zu erstellen. Dies ist aber wirklich sehr einfach! Dort dann einfach die entsprechenden Werte mit der Standard-Schriftfarbe definieren.
  1. Such dir ein für Dich stimmiges Theme aus
  2. Kopier die entsprechende Datei von "<helix-dir>/runtime/themes/" nach "~/.config/helix/themes" und gib ihr einen neuen Namen
  3. Setze für die entsprechenden Werte (z.B. von "variable" bis "namespace") die Textfarbe.
  4. Dann in Helix mit ":theme <dein_theme>" testen oder gleich in der config.toml festschreiben.
Danke, mit Hilfe Deiner Anleitung konnte ich das für mich optimale Minimal-Syntax-Highlighting einrichten. :THX: Ein einziges Syntax-Element mag ich nämlich doch farblich abgesetzt: die Kommentare. :wink:

Ich hab mir einfach das Theme dark_high_contrast hergenommen und im Abschnitt # Syntax high light das Element "comment" auf ein dezentes "brown" gesetzt und alles übrige auf "white".

Benutzeravatar
mn77de
Beiträge: 187
Registriert: 23.11.2003 16:53:53
Wohnort: Übersee
Kontaktdaten:

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von mn77de » 08.12.2024 00:21:47

Huo hat geschrieben: ↑ zum Beitrag ↑
07.12.2024 15:24:18
Ein einziges Syntax-Element mag ich nämlich doch farblich abgesetzt: die Kommentare. :wink:

Ich hab mir einfach das Theme dark_high_contrast hergenommen und im Abschnitt # Syntax high light das Element "comment" auf ein dezentes "brown" gesetzt und alles übrige auf "white".
Ja, das mit den Kommentaren macht schon Sinn. Ist doch toll, dass das so möglich ist. Und freut mich, wenn Dir Helix gefällt. :THX:
Debian stable, AwesomeWM, Mate, Helix, LF, Git, Java, Xemy, JayMo, ...
OpenSource! :THX:

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von chrbr » 08.12.2024 14:05:03

Huo hat geschrieben: ↑ zum Beitrag ↑
07.12.2024 15:24:18
Danke, mit Hilfe Deiner Anleitung konnte ich das für mich optimale Minimal-Syntax-Highlighting einrichten. :THX: Ein einziges Syntax-Element mag ich nämlich doch farblich abgesetzt: die Kommentare. :wink:

Ich hab mir einfach das Theme dark_high_contrast hergenommen und im Abschnitt # Syntax high light das Element "comment" auf ein dezentes "brown" gesetzt und alles übrige auf "white".
Bei der Art von Syntax-Highlighting bin ich auch immer wieder gelandet. Es ist halt nicht mehr hilfreich, wenn der Quelltext so aussieht, wie ein Bonbonladen. Mittlerweile bin ich bei "Solarized Light" gelandet. Ich finde die Farbkombinationen ausgesprochen häßlich, sie sind aber exterm gut lesbar. Im Link gibt es dazu Erklärungen.
https://ethanschoonover.com/solarized/

Huo
Beiträge: 778
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Adventskalender 6. Dezember 2024 - Helix - A post-modern Texteditor

Beitrag von Huo » 09.12.2024 14:24:01

chrbr hat geschrieben: ↑ zum Beitrag ↑
08.12.2024 14:05:03
Es ist halt nicht mehr hilfreich, wenn der Quelltext so aussieht, wie ein Bonbonladen.
Haha, "Bonbonladen" trifft es gut! Ich denke aber, dass es individuelle Unterschiede gibt, wie User am besten den Überblick behalten, und das nicht nur am Computer. Ich selbst habe in der Hinsicht vielleicht sogar ein gewisses persönliches Defizit. Zum Beispiel merkte ich vor Jahrzenhnten als Fahrschüler, dass es mir ungewöhnlich schwer fiel, in der Wahrnehmung des sich ständig verändernden Verkehrs wichtige Details (Verkehrszeichen, andere Verkehrsteilnehmer etc.) von unwichtigen (z.B. interessante Architektur oder Passant:innen :wink: ) zu trennen. Für mich eine Art Dauerstress. Deshalb habe ich mich dann – trotz im zweiten Anlauf erfolgreich abgelegter Führerscheinprüfung – entschieden, mir niemals ein Auto anzuschaffen.
chrbr hat geschrieben: ↑ zum Beitrag ↑
08.12.2024 14:05:03
Mittlerweile bin ich bei "Solarized Light" gelandet. Ich finde die Farbkombinationen ausgesprochen häßlich, sie sind aber exterm gut lesbar.
Solarisierte Themen habe ich früher auch schon ausprobiert, empfinde sie aber für meine im Alter etwas geschwächte Sehkraft als zu kontrastarm.

@mn77de
Entschuldige den Off-Topic-Ausflug. Vom Helix-Editor bin ich so angetan, dass er bis auf weiteres mein Standard-Editor ist!

Antworten