- Ein auf Mainstream-IDEs zugeschnittenes Emacs-Setup, das so aufgebaut ist, dass auch Einsteiger sofort loslegen können
- Bildet zentrale Funktionen wie VSCode-Theme, Explorer, Tabs, Multi-Cursor und Autovervollständigung in Emacs nach
- Bietet standardmäßig GUI- und Mausbedienung und lässt sich über die
custom-Oberfläche konfigurieren - Stellt eine vollständige Bearbeitungsumgebung sowohl für Lisp-Entwickler (Sly/Geiser) als auch für Nicht-Programmierer bereit
- Senkt die bisherige Einstiegshürde von Emacs und bietet einen leicht zugänglichen Startpunkt für neue Nutzer
Überblick über IDEmacs
- IDEmacs ist ein Konfigurationspaket, mit dem sich Emacs wie eine GUI-IDE à la Visual Studio Code oder Sublime Text verwenden lässt
- Die leistungsstarken Funktionen von Emacs bleiben erhalten, während die Oberfläche für Einsteiger vertraut wirkt
- Die Hauptzielgruppen sind drei Gruppen
- Programmierer, die von anderen IDEs wechseln, oder Nutzer, die gerade erst programmieren lernen
- Einsteiger in Common Lisp und Scheme (einschließlich Sly/Geiser und strukturellem Editing)
- Nicht-Programmierer, die Dokumente in Org, Markdown oder LaTeX bearbeiten möchten
- Ziel ist es, Nutzern, denen das Standarderlebnis von Emacs fremd ist, eine sofort nutzbare Umgebung bereitzustellen und so die Einstiegshürde zu senken
Hauptmerkmale
- GUI- und Mausunterstützung
- Anders als die meisten Starter-Kits werden GUI-Elemente nicht verborgen
- Konfiguration über die
custom-GUI wird unterstützt (direktes Bearbeiten von Elisp ist nicht nötig)
- IDE-ähnliche Tastenbelegungen
- Auf Basis des CUA-Modus werden die in VSCode und ähnlichen Tools verwendeten Shortcuts weitgehend nachgebildet
- Im Unterschied zu Spacemacs oder Doom mit
Evil-Modus liegt der Fokus auf GUI-zentrierter Bedienung
- Konfiguration auf dem Niveau einer vollständigen Emacs-Distribution
- Eine schnelle Umgebung, die keine zusätzliche Einrichtung erfordert
- Besteht aus ausführlich kommentiertem Elisp-Code und kann dadurch auch als Lernmaterial dienen
- Das Zielniveau ist nicht eine perfekte Nachahmung, sondern ein „hinreichend ähnliches“ Nutzungserlebnis
VSCode-Konfiguration (in Arbeit)
- Aktuell die einzige verfügbare IDE-Konfiguration
- Enthaltene Elemente
- VSCode Dark Plus Theme
- Treemacs als Datei-Explorer in der Seitenleiste
- Centaur Tabs als Tab-Leiste
- breadcrumb zur Anzeige des Dateipfads
- idle-highlight-mode zur automatischen Hervorhebung von Symbolen
- Weite Teile der VSCode-Shortcuts aus „General“, „Basic Editing“, „Rich Languages Editing“ und „Multi-cursor“ sind umgesetzt
- Wichtige Pakete
- Bearbeitung:
whole-line-or-region,expand-region,multiple-cursors,smartparens - Versionsverwaltung:
vc,magit,diff-hl,blamer - Autovervollständigung:
Vertico,orderless,Consult,marginalia,company - Lisp-Entwicklung:
sly,geiser,adjust-parens - Sonstiges:
eat(Terminal),org-superstar,pdf-tools,undo-tree,helpful,rainbow-mode - Die Code-Struktur wird mit
use-packageverwaltet
- Bearbeitung:
Tastenbelegungen
- VSCode-Shortcuts werden auf Emacs-Befehle abgebildet
- Beispiele:
C-S-p→ Befehlspalette (execute-extended-command)C-p→ Datei öffnen (consult-locate)C-S-n→ neues Fenster (make-frame)C-w→ Fenster schließen (idemacs-kill-buffer-noprompt)C-,→ Benutzereinstellungen (customize)
- Beispiele:
- Entsprechende Befehle sind nach Detailbereichen wie grundlegende Bearbeitung, Multi-Cursor, Navigation, Dateiverwaltung und Anzeigesteuerung definiert
- Einige Shortcuts verhalten sich anders als in VSCode und sind als TODO markiert
Bitte um Nutzung und Mitwirkung
- Nutzer werden gebeten, nach der Verwendung von IDEmacs Feedback zu geben
- Beobachtungen von Einsteigern sowie Meinungen über Jabber/XMPP oder den Issue-Tracker sind willkommen
- Entwickler werden ermutigt, sich an Code-Verbesserungen und Funktionserweiterungen zu beteiligen
Verwandtes Projekt
- Mousemacs (GitHub: seamus-brady/mousemacs)
- Eine Distribution, die Emacs wie Sublime Text oder VSCode funktionieren lässt
- Wurde zum Lernen von Lisp entwickelt und bietet eine mausfreundliche Oberfläche
- Bewahrt alle Funktionen von Emacs bei einem schlichten Theme
Installation und Start
- Erforderliche Abhängigkeiten
- Emacs 29 oder höher,
git, die Schriftart DejaVu Sans Mono
- Emacs 29 oder höher,
- Optionale Abhängigkeiten
grep,locateoderplocate
- Installationsschritte
- Repository klonen
git clone https://codeberg.org/IDEmacs/IDEmacs - Emacs bei bestehender Internetverbindung starten
emacs --init-directory=/path/to/IDEmacs/vscode
- Beim Start werden die benötigten Emacs-Pakete automatisch heruntergeladen
- Repository klonen
Sonstiges
- Derzeit wird außer der VSCode-Konfiguration kein anderer IDE-Stil angeboten
- Es wird erwähnt, dass künftig bei ausreichenden Ressourcen neue GUI-Implementierungen möglich wären
- Im Originaltext gibt es keine weiteren Informationen
1 Kommentare
Hacker-News-Kommentare
Wer VSCode für einfach hält, braucht einen Realitätscheck
Beim ersten Start fühlt man sich von Pop-ups, Sidebar, Tooltips usw. regelrecht erschlagen
Ich bin selbst Emacs-Nutzer, würde aber auch nicht behaupten, dass Emacs intuitiv ist
Nur ist VSCode ebenfalls kein magisch einfaches Tool, sondern einfach nur die populäre Standardwahl
Dateibaum, Editor, Terminal, Tab-Completion und das Installieren von Extensions decken den Großteil der Interaktionen der meisten Nutzer ab
Was nicht mitgeliefert wird oder sich nicht leicht per Extension ergänzen lässt, wird von den meisten gar nicht genutzt
Aber die Komplexität von VSCode ist kein Vergleich zu vim oder Emacs
Mit einem kurzen Tutorial oder 30 Minuten Herumprobieren kann man sich gut einarbeiten
Bei neovim brauchte ich dagegen gleich ein ganzes Buch
Kürzlich habe ich RustRover ausprobiert, und allein durch Klicken ließ sich die gewünschte Konfiguration nur schwer erreichen
Das hat mir gezeigt, dass die vermeintliche „Einfachheit“ einer IDE stärker Illusion sein kann, als man denkt
Viele Tools unterstützen allgemeine Interfaces wie Standard-Dateiauswahl oder CUA-Shortcuts
Deshalb nutze ich statt Emacs lieber Alternativen wie Zim-wiki und bin damit zufriedener
Wer dagegen vor allem mit tmux, vi, nano oder emacs gearbeitet hat, kann davon eher irritiert sein
Emacs ist nicht einfach nur eine IDE, sondern ein Werkzeug mit Philosophie und Freiheit
Viele Projekte fokussieren sich auf programmierzentrierte Anwendungsfälle, aber in VSCode lassen sich mit Emacs-Keybindings etwa 75 % davon nachbilden
Der Kern von Emacs ist der Ansatz, einem einen „Baukasten“ zu geben, den man selbst zusammensetzt
Es ist gewissermaßen „eine elegante Waffe für ein zivilisierteres Zeitalter“
Die meisten Datenstrukturen sind veränderbar, und es gibt viele imperative Funktionen wie
setqIch frage mich, ob feste Fensterlayouts in Emacs in der Praxis wirklich gut funktionieren
Als ich das früher ausprobiert habe, zeigte das Treemacs-Panel oft Code-Buffer statt des Datei-Browsers an
In letzter Zeit ist es viel einfacher geworden, Emacs als IDE einzurichten
Dank des eingebauten eglot braucht man viel weniger elisp-Code als früher, und für Python reicht oft eine einzige Zeile
Solche Projekte sind daher für bestehende Nutzer wie mich weniger interessant als vielmehr ein Einstiegstor für Neulinge
OCaml-REPL, 68000-Emulator und gdb-Integration funktionierten ohne großen Konfigurationsaufwand
Später bin ich wegen Remote-Server-Umgebungen zu vim gewechselt, aber als ich kürzlich wieder Emacs ausprobiert habe, wirkte das Paketmanagement deutlich ausgereifter
Nur beim DevOps-/SRE-Tooling gibt es weiterhin Defizite
Ich mag gebündelte Paketprojekte wie Spacemacs und Doom
Ich nutze sie zwar nicht direkt, aber sie helfen dabei, neue Pakete zu entdecken und liefern einen Anlass, die eigene Konfiguration wieder anzufassen
So schlicht, aber so treffsicher — das hat mich zum Schmunzeln gebracht
Ich wünschte, es gäbe ein Projekt, das die UI von Emacs modern neu aufbaut
Der Kern könnte gleich bleiben, aber ich hätte gern ein Interface mit klarerer visueller Trennung und weniger Augenbelastung
Auch eine Funktion wie in alten Lisp-basierten Editoren, bei der beim Drücken von Ctrl Hinweise zu Tastenkombinationen erscheinen, fand ich gut
Die UI ist in Ordnung, und das dringendere Problem ist die Single-Thread-Struktur und das häufige Einfrieren
Dass man einmal am Tag
C-gdrücken muss, sollte eher verbessert werdenEs läuft auf curses/SDL2 und führt den Emacs-Stil fort
Früher war das ein externes Paket, inzwischen wurde es in Emacs selbst integriert
Link zum betreffenden Commit
Ein großer Vorteil ist, dass sie in grafischen Umgebungen wie auch im Terminal gleich aussieht
Besonders gefällt mir, dass Treemacs überall gleich aussieht
Schade, dass OniVim v2 kein Erfolg wurde
Es war eine native IDE und unterstützte zugleich vollständig das Plugin-System von VSCode
Link zum OniVim-v2-Archiv
Das hätte auch für Entwickler anderer GUI-Frontends nützlich sein können
Neovim kommuniziert zwar per RPC, ist performance-seitig aber schnell genug
Auch das Neovim-Plugin für VSCode liefert dank dieser Struktur ein vollständiges vim-Erlebnis
Vim-Nutzer würden sich über die Eingabelatenz der Electron-Basis und die EULA beschweren, während VSCode-Nutzer sich nicht für Vim interessieren
Ich nutze Emacs seit über 25 Jahren, und bei einer Neuinstallation ist das Erste, was ich tue, alle GUI-Elemente zu deaktivieren
Menüs und Toolbar benutze ich überhaupt nicht
Aber mein Betreuer hat das Standard-Emacs mit der Maus für LaTeX-Arbeiten verwendet, und das war eine ziemlich interessante Erfahrung
Ich werde weiter Doom Emacs nutzen, aber solche Versuche begrüße ich
Emacs hat viele innovative UI-Plugins wie Vertico, aber das Standarderlebnis ist noch immer schwach
Wenn solche Projekte Emacs für mehr Menschen zugänglicher machen, ist das eine gute Sache
Ich benutze Emacs seit über 15 Jahren, und mein einziger Wunsch ist ein Client-Server-Modus für Remote-Bearbeitung wie in VSCode
Es wäre schön, eine Lösung zu haben, die auch in Umgebungen mit hoher Latenz gut funktioniert
Falls es keine gibt, würde ich so etwas selbst bauen
Trotzdem ist die Python-Integration von VSCode ziemlich gut
-nw) ausführen