- Un ensemble de réglages qui configure Emacs comme un IDE grand public afin que même les débutants puissent l’utiliser immédiatement
- Reproduit dans Emacs des fonctions clés comme le thème VSCode, l’explorateur, les onglets, le multi-cursor et l’autocomplétion
- Prend en charge par défaut l’interface graphique et l’utilisation de la souris, avec une configuration possible via l’interface
custom - Offre un environnement d’édition complet pour les développeurs Lisp (Sly/Geiser) comme pour les non-programmeurs
- Réduit la barrière d’entrée d’Emacs en offrant un point de départ facile à adopter pour les nouveaux utilisateurs
Aperçu d’IDEmacs
- IDEmacs est un ensemble de configuration qui permet d’utiliser Emacs comme un IDE graphique tel que Visual Studio Code ou Sublime Text
- Il conserve la puissance d’Emacs tout en offrant une interface familière aux débutants
- Il vise principalement trois groupes
- Les programmeurs venant d’un autre IDE ou les utilisateurs qui apprennent à coder pour la première fois
- Les débutants en Common Lisp et en Scheme (avec Sly/Geiser et des fonctions d’édition structurelle)
- Les non-programmeurs qui souhaitent éditer des documents Org, Markdown et LaTeX
- Son objectif est d’abaisser la barrière d’entrée en fournissant un environnement prêt à l’emploi aux utilisateurs pour qui l’expérience Emacs par défaut est déroutante
Principales caractéristiques
- Prise en charge de l’interface graphique et de la souris
- Contrairement à la plupart des starter kits, il ne masque pas les éléments de l’interface graphique
- La configuration est possible via l’interface graphique
custom(sans avoir à modifier directement l’Elisp)
- Raccourcis clavier de style IDE
- Basé sur le mode CUA, il reproduit largement les raccourcis utilisés dans VSCode et d’autres outils similaires
- Contrairement à Spacemacs ou Doom qui utilisent le mode
Evil, l’interaction est centrée sur l’interface graphique
- Une configuration au niveau d’une distribution Emacs complète
- Un environnement rapide et sans configuration nécessaire
- Composé d’un code Elisp abondamment commenté, qui peut aussi servir de ressource d’apprentissage
- Le niveau visé n’est pas une imitation parfaite, mais une expérience « suffisamment proche »
Configuration VSCode (en cours)
- La seule configuration IDE actuellement proposée
- Éléments inclus
- Thème VSCode Dark Plus
- Explorateur de fichiers latéral Treemacs
- Barre d’onglets Centaur Tabs
- Affichage du chemin de fichier breadcrumb
- Mise en surbrillance automatique des symboles avec idle-highlight-mode
- Implémente la plupart des raccourcis VSCode des catégories “General”, “Basic Editing”, “Rich Languages Editing” et “Multi-cursor”
- Principaux paquets
- Édition :
whole-line-or-region,expand-region,multiple-cursors,smartparens - Gestion de versions :
vc,magit,diff-hl,blamer - Autocomplétion :
Vertico,orderless,Consult,marginalia,company - Développement Lisp :
sly,geiser,adjust-parens - Divers :
eat(terminal),org-superstar,pdf-tools,undo-tree,helpful,rainbow-mode - L’organisation du code est gérée avec
use-package
- Édition :
Configuration des raccourcis clavier
- Mappe les raccourcis de VSCode vers des commandes Emacs
- Exemples :
C-S-p→ palette de commandes (execute-extended-command)C-p→ ouvrir un fichier (consult-locate)C-S-n→ nouvelle fenêtre (make-frame)C-w→ fermer la fenêtre (idemacs-kill-buffer-noprompt)C-,→ paramètres utilisateur (customize)
- Exemples :
- Définit des commandes correspondantes pour des catégories détaillées comme l’édition de base, le multi-cursor, la navigation, la gestion des fichiers et le contrôle de l’affichage
- Certains raccourcis se comportent différemment de VSCode et sont marqués comme TODO
Participation et contribution
- Demande aux utilisateurs de fournir un retour après avoir utilisé IDEmacs
- Observation de débutants, partage d’avis via Jabber/XMPP ou le gestionnaire d’issues
- Les développeurs sont encouragés à contribuer à l’amélioration du code et à l’extension des fonctionnalités
Projets liés
- Mousemacs (GitHub : seamus-brady/mousemacs)
- Une distribution qui fait fonctionner Emacs comme Sublime Text ou VSCode
- Créée pour l’apprentissage de Lisp, avec une interface pensée pour la souris
- Conserve toutes les fonctionnalités d’Emacs avec un thème simple
Installation et lancement
- Dépendances requises
- Emacs 29 ou plus,
git, police DejaVu Sans Mono
- Emacs 29 ou plus,
- Dépendances optionnelles
grep,locateouplocate
- Procédure d’installation
- Cloner le dépôt
git clone https://codeberg.org/IDEmacs/IDEmacs - Lancer Emacs avec une connexion Internet
emacs --init-directory=/path/to/IDEmacs/vscode
- Les paquets Emacs nécessaires sont téléchargés automatiquement au lancement
- Cloner le dépôt
Divers
- Aucun autre style d’IDE n’est actuellement proposé en dehors de la configuration VSCode
- La possibilité d’une nouvelle implémentation d’interface graphique est évoquée si les ressources le permettent à l’avenir
- Aucune information supplémentaire dans le texte source
1 commentaires
Avis Hacker News
Les gens qui pensent que VSCode est simple ont besoin d’un petit retour à la réalité
Au premier lancement, on se sent submergé par les pop-ups, la barre latérale, les infobulles, etc.
J’utilise aussi Emacs, mais je ne prétends pas qu’Emacs soit intuitif
Cela dit, VSCode n’est pas non plus un outil magiquement facile, c’est simplement l’option grand public
Arborescence de fichiers, éditeur, terminal, autocomplétion par onglets, installation d’extensions : c’est à peu près tout le périmètre d’interaction de la plupart des utilisateurs
Si ce n’est pas fourni par défaut ou facile à ajouter via une extension, la plupart des gens ne l’utilisent pas
Mais la complexité de VSCode n’est pas du tout comparable à celle de vim ou d’Emacs
Un petit tutoriel ou 30 minutes d’essai suffisent pour s’y habituer
À l’inverse, pour neovim, il m’a carrément fallu un livre entier
J’ai récemment essayé RustRover, et il était difficile d’obtenir la configuration que je voulais uniquement en cliquant
Cela m’a rappelé que la « facilité » d’un IDE peut être plus illusoire qu’on ne le pense
Beaucoup d’outils prennent en charge des interfaces communes comme le sélecteur de fichiers standard ou les raccourcis CUA
C’est pour cela que j’utilise aujourd’hui des alternatives comme Zim-wiki à la place d’Emacs, et j’en suis plus satisfait
En revanche, si l’on a surtout travaillé avec tmux, vi, nano ou emacs, cela peut dérouter
Emacs n’est pas un simple IDE, c’est un outil porteur de philosophie et de liberté
Il existe beaucoup de projets axés sur des usages centrés sur la programmation, mais dans VSCode on peut déjà reproduire 75 % de l’expérience avec des raccourcis Emacs
L’essentiel d’Emacs, c’est son approche qui consiste à vous donner une « boîte de pièces » pour que vous assembliez vous-même votre environnement
C’est un peu comme « une arme élégante pour un âge plus civilisé »
La plupart des structures de données sont mutables, et il y a beaucoup de fonctions impératives comme setq
Je me demande si les dispositions de fenêtres fixes fonctionnent vraiment bien dans Emacs
La dernière fois que j’ai essayé, le panneau Treemacs affichait parfois un buffer de code au lieu de l’explorateur de fichiers
Configurer Emacs comme IDE est devenu bien plus simple récemment
Grâce à eglot intégré, il faut beaucoup moins de code elisp qu’avant, et une configuration Python tient en une seule ligne
Du coup, ce genre de projet ressemble davantage à une porte d’entrée pour débutants qu’à quelque chose destiné à des utilisateurs existants comme moi
REPL OCaml, émulateur 68000, intégration gdb : tout cela fonctionnait sans grosse configuration
Je suis ensuite passé à vim à cause d’environnements sur serveurs distants, mais en retentant Emacs récemment, j’ai trouvé la gestion des paquets bien plus raffinée
En revanche, l’outillage DevOps/SRE reste encore insuffisant
J’aime les projets de bundles de paquets comme Spacemacs ou Doom
Je ne les utilise pas directement, mais ils me permettent de découvrir de nouveaux paquets et me donnent une excuse pour remettre les mains dans ma configuration
C’est simple, parfaitement adapté à son objectif, et ça m’a fait sourire
J’aimerais qu’il existe un projet de refonte moderne de l’UI d’Emacs
Je veux garder le cœur tel quel, mais avec une interface visuellement plus lisible et moins fatigante pour les yeux
J’aimais aussi la fonction des anciens éditeurs Lisp où, quand on appuyait sur Ctrl, une aide sur les raccourcis s’affichait
L’UI me va, et le problème plus urgent est la structure mono-thread et les gels fréquents
Il faudrait améliorer le fait qu’on doive appuyer sur
C-gau moins une fois par jourIl fonctionne sur curses/SDL2 et reprend le style d’Emacs
C’était autrefois un paquet externe, mais il a récemment été intégré au cœur d’Emacs
Lien vers le commit correspondant
Le fait qu’elle fonctionne avec le même aspect en environnement graphique comme en terminal est un énorme avantage
J’apprécie particulièrement que Treemacs ait la même apparence partout
C’est dommage que OniVim v2 n’ait pas réussi
C’était un IDE natif qui prenait entièrement en charge le système de plugins de VSCode
Lien vers les archives d’OniVim v2
Cela aurait aussi pu être utile à d’autres développeurs de frontends GUI
Neovim communique via RPC, mais les performances restent largement suffisantes
Le plugin Neovim pour VSCode offre lui aussi une expérience vim complète grâce à cette architecture
Les utilisateurs de Vim allaient probablement se plaindre de la latence de saisie liée à Electron et de l’EULA, tandis que les utilisateurs de VSCode ne s’intéressent pas à Vim
J’utilise Emacs depuis plus de 25 ans, et la première chose que je fais sur une nouvelle installation est de désactiver les éléments GUI
Je n’utilise ni menus ni barre d’outils
Mais mon directeur de thèse utilisait Emacs de base à la souris pour faire du LaTeX, et c’était une expérience assez rafraîchissante
Je vais continuer à utiliser Doom Emacs, mais ce genre d’initiative est bienvenu
Emacs dispose de nombreux plugins d’UI innovants comme Vertico, mais l’expérience par défaut reste insuffisante
Si ce type de projet peut rendre Emacs plus accessible à davantage de monde, c’est une bonne chose
J’utilise Emacs depuis plus de 15 ans, et mon seul vrai souhait est un mode client-serveur permettant l’édition distante comme dans VSCode
J’aimerais une solution qui fonctionne bien même avec une forte latence
Sinon, je songe à la développer moi-même
Cela dit, l’intégration Python de VSCode est plutôt bonne
-nw) sur le serveur distant