https://codeberg.org/IDEmacs/IDEmacs This website requires JavaScript. # Explore About FAQ Help Donate Register Sign in IDEmacs/IDEmacs Watch 4 Star 30 Fork You've already forked IDEmacs 0 Code Issues 11 Pull requests Projects Releases Packages Wiki Activity Making Emacs beginner-friendly, via configurations that emulate mainstream IDEs 189 commits 2 branches 0 tags 1.9 MiB Emacs Lisp 100% production Find a file HTTPS [https://codeberg.org] Download ZIP Download TAR.GZ Download BUNDLE Open with VS Code Open with VSCodium Open with Intellij IDEA Cite this repository BibTeX [ ] Cancel # contrapunctus e1db4094f4 Mention font in 2025-11-16 06:43:19 dependencies +05:30 img Update screenshot 2024-06-27 00:53:52 +05:30 vscode Replace Bitstream Vera with 2025-11-16 06:40:45 DejaVu +05:30 .dir-locals.el Add notes 2024-06-23 04:43:22 +05:30 .gitignore Update .gitignore 2024-07-11 00:24:25 +05:30 LICENSE Initial commit 2024-04-01 12:11:18 +00:00 README.org Mention font in dependencies 2025-11-16 06:43:19 +05:30 TODO.org Note mousewheel scrolling issues 2024-07-23 00:57:06 +05:30 README.org * Description + VSCode configuration (WIP) o Keybinding coverage # General # Keys not mentioned in the VSCode keyboard shortcuts PDF # Basic editing # Rich languages editing # Multi-cursor and selection # Display # Search and replace # Editor management # File management + Help needed! + Prior art * How-to guides + How to temporarily try out a configuration Description IDEmacs aims to be a set of Emacs configurations which provide an out-of-the-box experience similar (if not identical) to popular GUI IDEs and editors. It is aimed at... 1. Programmers coming to Emacs from other IDEs, or even first-time programmers familiar with only office applications. 2. Beginner Common Lisp and Scheme programmers, who need the functionality of Emacs (Sly/Geiser + structural editing) without having to perform unnecessary setup and without dealing with an alien style of keybindings. In other words, similar to Portacle or Guile Studio.^1 + Some may say that we should improve support for Common Lisp and Scheme in other editors and IDEs instead. Still others may say that we should work on a better Lisp IDE than Emacs instead (such as Second Climacs or Lem). All great points. IDEmacs is just a band-aid for the present situation, where Emacs + Sly/Geiser is the best Lisp/Scheme IDE. 3. Non-programmers who want a fully-featured Org, Markdown, or LaTeX editor with idiomatic shortcuts and mouse-friendly GUI. It provides... 1. GUI and mouse support, in addition to a keyboard-driven interface. + Unlike most starter kits, we do not hide GUI elements by default. + We support configuration via the custom GUI, not just Elisp o Supporting GUI and custom means we cannot use straight + If resources allow, we may implement new GUIs in Emacs 2. Keybindings that follow popular GUI and IDE conventions. ^2 + CUA mode is just the start - much more keybinding configuration is needed to provide an unsurprising experince. And that's before we even get to the IDE-specific keybindings. + This excludes starter kits that use Evil by default, such as Spacemacs or Doom. 3. A fully-featured, fast, and configuration-free Emacs experience, like any starter kit/distro. + The configuration uses idiomatic Elisp and contains a generous amount of comments, valuable to anyone interested in learning to configure Emacs using Elisp. Perfectly imitating the GUIs and subtle behaviour differences of IDEs is desirable, but not top priority. Given our limited resources, we aim for "good enough". We hope this gives new users a comfortable starting point, and make them more likely to stick around to discover the possibilities of Emacs' malleability, rather than being driven off by the default experience. VSCode configuration (WIP) This is the first and currently the only IDE configuration provided. /IDEmacs/IDEmacs/media/branch/production/img/ Screenshot%20from%202024-06-27%2000-51-42.png The VSCode configuration, showing the init.el source with vscode-dark-plus theme, treemacs, centaur-tabs, minimap, idle-highlight-mode, blamer, diff-hl, and breadcrumb. Currently, it brings together - 1. VSCode Dark Plus theme 2. Treemacs for the sidebar file browser ("Explorer") 3. Centaur Tabs for the tab bar 4. breadcrumb to show file paths as breadcrumbs 5. idle-highlight-mode to automatically highlight occurrences of the symbol at point 6. Emulation of most keybindings listed in the "General", "Basic Editing", "Rich Languages Editing", and "Multi-cursor and selection" sections of the VSCode keyboard shortcuts cheatsheet. 7. All editing packages required for emulation, including whole-line-or-region, expand-region, multiple-cursors, and smartparens 8. vc and magit for version control 9. diff-hl and blamer to show in-buffer version control information 10. A comprehensive collection of completion packages - Vertico, orderless, Consult, marginalia, and company. 11. Lisp editing packages - sly, geiser, and adjust-parens (similar to Parinfer) 12. eat for terminals 13. Sensible Emacs defaults, and other goodies - org-superstar, pdf-tools, undo-tree, helpful, rainbow-mode, ... use-package is used to keep the code organized. Keybinding coverage An empty command cell means we haven't bound anything to these keys yet. General Keybinding VSCode IDEmacs-VSCode command Notes description VSCode also binds Show F1 to this, but C-S-p Command execute-extended-command we currently Palette leave that to the Emacs help prefixes. FIXME - behaviour differs from VSCode. Without a search term, VSCode suggests currently- and recently-opened Quick Open, files. Once a C-p Go to File consult-locate search term is entered, it searches for currently- and recently-opened files and the files in the currently opened project. C-S-n New window/ make-frame instance Close C-w window/ idemacs-kill-buffer-noprompt instance C-, User customize Settings Keyboard We need to make C-k C-s Shortcuts an interface for this. Keys not mentioned in the VSCode keyboard shortcuts PDF Keybinding IDEmacs-VSCode command Notes Tries to provide VSCode idemacs-escape behaviour while also acting as C-g C-a idemacs-select-all FIXME - behaviour differs from VSCode. This should not just C-k C-o treemacs-select-directory open a directory in Treemacs but also load the corresponding desktop file for it. Basic editing Keybinding VSCode IDEmacs-VSCode command Notes description Cut line empty C-x (empty cua-cut-handler selection selection) behaviour is TODO Copy line empty C-c (empty cua-copy-handler selection selection) behaviour is TODO M- / Move line drag-stuff-up / drag-stuff-down M- up/down C-S-k Delete line whole-line-or-region-kill-region C-RET / Insert line idemacs-open-line / C-S-RET below/above idemacs-open-line-above Jump to C-S-\ matching bracket Indent/ C-] / C-[ Outdent line / Go to move-beginning-of-line / vanilla Emacs beginning/ move-end-of-line defaults end of line C- / Go te beginning-of-buffer / vanilla Emacs C- beginning/ end-of-buffer defaults end of file C- / Scroll line scroll-down-line / C- up/down scroll-up-line M- (Page Up) Scroll page / M- up/down (Page Down) C-S-[ / Fold/unfold C-S-] region C-k C-[ / Fold/unfold C-k C-] all subregions C-k C-0 / Fold/unfold C-k C-j all regions In VSCode, subsequent presses add additional comment C-k C-c Add line idemacs-comment-line characters to comment the start of the line, whereas IDEmacs-VSCode just toggles the comment. In VSCode, subsequent presses remove additional comment C-k C-u Remove line idemacs-comment-line characters comment from the start of the line, whereas IDEmacs-VSCode just toggles the comment. C-/ Toggle line comment Toggle C-S-a block comment M-z Toggle word toggle-truncate-lines wrap Rich languages editing Keybinding VSCode description IDEmacs-VSCode command Notes C-SPC, C-i Trigger suggestion C-S-SPC Trigger parameter hints C-S-i Format document C-k C-f Format selection Go to definition xref-find-definitions C-S- Peek definition C-k Open definition to the side C-. Quick fix S- Show references xref-find-references Rename symbol C-k C-x Trim trailing whitespace delete-trailing-whitespace C-k m Change file language Multi-cursor and selection Keybinding VSCode description IDEmacs-VSCode command Notes M- Insert cursor mc/toggle-cursor-on-click M-S- / Insert cursor above mc/mark-previous-lines / mc/ M-S- /below mark-next-lines C-u Undo last cursor operation Insert cursor at M-S-i end of each line mc/edit-ends-of-lines selected C-l Select current line Select all C-S-l occurrences of mc/mark-all-like-this current selection Select all C- occurrences of mc/mark-all-words-like-this current word M-S- Expand selection er/expand-region M-S- Shrink selection er/contract-region M-S- Column (box) idemacs-mouse-drag-rectangle selection Display Keybinding VSCode IDEmacs-VSCode command Notes description Toggle full toggle-frame-fullscreen vanilla Emacs screen defaults Toggle editor M-S-0 layout (horizontal/ vertical) C-\= / C-- Zoom in/out text-scale-increase / text-scale-decrease C-b Toggle sidebar visibility C-S-e Show Explorer/ idemacs-treemacs Toggle focus C-S-f Show Search C-S-g Show Source magit-status Control C-S-d Show Debug We need to write a C-S-x Show list-packages better interface. Extensions Elpaca may be an option. We need an C-S-h Replace in isearch-query-replace incremental, files multi-file replacement UI. C-S-j Toggle Search details Open new C-S-c command prompt /terminal C-k C-h Show output panel C-S-v Open Markdown preview Open Markdown C-k v preview to the side C-k z Zen Mode (Esc Esc to exit) Search and replace Keybinding VSCode IDEmacs-VSCode Notes description command C-t Show all symbols C-g Go to line consult-line C-p Go to file consult-locate FIXME - behaviour differs from VSCode C-S-o Go to symbol consult-imenu-multi FIXME - behaviour differs from VSCode C-S-m Show problems panel Go to next error or warning S- Go to previous error or warning C-S- Navigate editor group history C-M-- Go back C-S-- Go forward C-m Toggle Tab moves focus Editor management Keybinding VSCode IDEmacs-VSCode command Notes description FIXME - C-w Close editor idemacs-kill-buffer-noprompt behaviour differs from VSCode C-k f Close folder C-\ Split editor split-window-right Focus into select-window-1, FIXME - C-1 / C-2 1st, 2nd, 3rd select-window-2, behaviour / C-3 editor group select-window-3 differs from VSCode C-k C- Focus into previous editor group C-k C- Focus into next editor group C-S- Move editor left C-S- Move editor right Move active C-k editor group left/up C-k Move active editor group right/down File management Keybinding VSCode description IDEmacs-VSCode command Notes C-n New file untitled-new-buffer C-o Open file find-file C-s Save save-buffer C-S-s Save As write-buffer C-w Close idemacs-kill-buffer-noprompt C-k C-w Close all C-S-t Reopen closed editor C-k Enter Keep preview mode editor open C- Open next C-S- Open previous C-k p Copy path of active file C-k r Reveal active file in Explorer C-k o Show active file in new window/instance Help needed! Users - 1. Use IDEmacs. Observe newbies as they use IDEmacs. 2. Provide your feedback in our Jabber/XMPP room or in the issues. 3. Tell others about IDEmacs! Developers - 1. Look at the major problems and to-do items in the issues and the TODO.org 2. Search for "FIXME" in the source to find smaller problems 3. Make pull requests 4. Tell others about IDEmacs! Prior art 1. https://github.com/seamus-brady/mousemacs From the author - I created this abomination so I could learn Lisp without having to worry too much about learning Emacs. It was originally envisaged for me to use and then switch off as I learned Emacs. But I actually liked it better and now it is my main editor. Mousemacs works pretty much like Sublime Text or Visual Studio Code out of the box. But it has the full power of Emacs underneath. All I did was take all the most useful Emacs packages and wrap them in a mouse friendly distribution. It is not perfect and certainly not for everyone, but it might be useful for some. It comes with a simple plain theme but it is still Emacs. How-to guides How to temporarily try out a configuration 1. Install required dependencies - 1. Emacs v29 or better. 2. git 3. DejaVu Sans Mono font 2. Install optional dependencies - 1. grep 2. locate or plocate 3. Clone the repository. git clone https://codeberg.org/IDEmacs/IDEmacs 4. Ensure you are connected to the Internet (so IDEmacs can download the necessary Emacs packages), and run IDEmacs. emacs --init-directory=/path/to/IDEmacs/vscode --------------------------------------------------------------------- ^1 We also aim to provide pre-built binaries which beginners can just launch, without needing to fiddle with init directory setup or dependency installation. ^2 There's still the issue of unconventional terminology, but we aren't currently trying to fix that. Logo Powered by Forgejo logo Forgejo logo with modifications Codeberg Blog * Documentation * Community Issues * Contributing * Report Abuse Association * Who are we? * Bylaws / Satzung * Donate * Join / Support * Contact Services * Codeberg Pages * Codeberg Translate * Woodpecker CI * Forgejo API * Status Page Legal * Imprint / Impressum * Privacy Policy * Licenses * Terms of Use Mastodon | Matrix Space (Web link) Powered by Forgejo English Bahasa Indonesia Dansk Deutsch English Espanol Esperanto Filipino Francais Italiano Latviesu Magyar nyelv Nederlands Plattduutsch Polski Portugues de Portugal Portugues do Brasil Slovenscina Suomi Svenska Turkce Cestina Ellenika B'lgarski Russkii Ukrayins'ka frsy Ri Ben Yu Jian Ti Zhong Wen Fan Ti Zhong Wen (Tai Wan )Fan Ti Zhong Wen (Xiang Gang ) hangugeo Page: 214ms Template: 10ms