1 Punkte von GN⁺ 2025-11-17 | 1 Kommentare | Auf WhatsApp teilen
  • 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-package verwaltet

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)
  • 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
  • Optionale Abhängigkeiten
    • grep, locate oder plocate
  • Installationsschritte
    1. Repository klonen
      git clone https://codeberg.org/IDEmacs/IDEmacs
      
    2. Emacs bei bestehender Internetverbindung starten
      emacs --init-directory=/path/to/IDEmacs/vscode
      
    • Beim Start werden die benötigten Emacs-Pakete automatisch heruntergeladen

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

 
GN⁺ 2025-11-17
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

    • Die UX von VSCode ist recht vertraut
      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
    • Professionelle Tools (IDEs, DAWs, Video-Editoren usw.) bringen zwangsläufig Komplexität mit sich
      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
    • Ich nutze Emacs ebenfalls täglich, aber VSCode fühlt sich für mich grell und ruppig an
      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
    • Aus der Perspektive von jemandem, der Emacs ein Jahr lang genutzt und dann aufgegeben hat, ist Interoperabilität viel wichtiger
      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
    • Zur Meinung, dass die Pop-ups und Sidebars von VSCode belastend seien: Wer an schwere IDEs wie Eclipse gewöhnt ist, findet das vielleicht eher vertraut
      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“

    • Allerdings lässt sich Emacs Lisp schwerlich als funktionale Sprache bezeichnen
      Die meisten Datenstrukturen sind veränderbar, und es gibt viele imperative Funktionen wie setq
  • Ich 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

    • Als ich Emacs vor 15 Jahren in der Schule benutzt habe, lief es auch schon ziemlich rund
      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

    • Ich habe mir auch die Pakete auf der idemacs-Seite angeschaut, und der Name „minimap“ ist mir besonders aufgefallen
      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

    • Ich sehe es eher genau andersherum
      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-g drücken muss, sollte eher verbessert werden
    • Nicht völlig dasselbe, aber Lem auf Basis von Common Lisp ist vielleicht einen Blick wert
      Es läuft auf curses/SDL2 und führt den Emacs-Stil fort
    • Wahrscheinlich ist which-key gemeint
      Früher war das ein externes Paket, inzwischen wurde es in Emacs selbst integriert
      Link zum betreffenden Commit
    • Ich möchte die derzeitige UI möglichst beibehalten
      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

    • OniVim hat die Kernfunktionen von vim in eine separate Bibliothek namens libvim ausgelagert
      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
    • Allerdings war die Zielgruppe unklar
      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

    • Vor allem VSCode-Nutzer arbeiten stark mauszentriert, aber die Stärke von Emacs liegt darin, dass man die Lisp-Maschine nach Belieben verändern kann
    • Ich nutze Emacs ebenfalls seit über 15 Jahren komplett per Tastatur
      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

    • Es gibt zwei Ansätze
      1. Emacs lokal ausführen und Remote-Dateien über Tramp bearbeiten
      2. Emacs auf dem Remote-Server im Terminal-Modus (-nw) ausführen