Emacs Lisp Emacs

Open-source Emacs Lisp projects categorized as Emacs

Emacs or EMACS is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor".

Top 23 Emacs Lisp Emac Projects

  • spacemacs

    A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!

  • Project mention: Emacs 29.1 Released | news.ycombinator.com | 2023-07-30
  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • doomemacs

    An Emacs framework for the stubborn martian hacker

  • Project mention: Helix-gpui: helix gpui front end | news.ycombinator.com | 2024-05-27

    Having used evil-mode as my main driver for years, I can confirm that it truly works as expected. Requires some setup though. I used https://github.com/doomemacs/doomemacs to do the heavy lifting though.

  • magit

    It's Magit! A Git Porcelain inside Emacs.

  • Project mention: Enlightenmentware | news.ycombinator.com | 2024-05-20

    I'm sure Magit is lovely. But I can't resist sharing the story of my bad experience with it over a decade ago (which has left me scared away).

    It was maybe early 2012, and I was excited to try Magit. I got it set up, and called 'M-x magit-init' from a source file I was editing. My understanding was that this would create a new git repo in that source file's directory, ending up with something like "/home/beautron/myproject/.git".

    But something else happened. The git repo was put here instead: "/home/beautron/myproject/~/myproject/.git". Note the peculiar "~" directory, created inside the project directory.

    Huh. Weird. Well, let's get rid of this mess and try again. I went to the project directory in my bash shell, typed "rm -r ~", and hit enter. Somewhere between my mind firing the signal to hit enter, and enter actually being hit, I realized with horror what this command would do. But it was too late to cancel the brain signal.

    I didn't lose everything, because I had not typed something worse like "rm -rf ~", and somewhere in my home directory tree was a read-only file. So the command only deleted so far as that file, and then paused to ask for confirmation.

    I estimated I lost about half of everything (the first half of the alphabet was gone from my home directory). The most frustrating thing was not even being sure what all I had lost. On the plus side, this experience improved my regimen around backups.

    As I was trying to salvage the wreck of my system, I had a separate laptop out on the side, where I was trying to get some help, or maybe just some sympathy, from the #archlinux irc channel on freenode. But the two people who responded to me on the channel were very snarky to me. I felt they thought I was clearly an idiot for having run that command.

    The irc people refused to believe that Magit created the "~" directory. They were convinced I had done that myself, with some other series of stupid commands. (If you had to guess the source of weird "~", who would you choose: the established Magit project, or the guy who just deleted half his home directory?)

    But a short time later I was vindicated! From Magit's github issue 383, Feb 29, 2012:

    > So if you're editing "~/Temp/foobar/boo.txt" and call "M-x magit-init" which defaults to "~/Temp/foobar", instead of creating a git repo in "/Users/jimeh/Temp/foobar" it creates it in "/Users/jimeh/Temp/foobar/~/Temp/foobar".

    Source: https://github.com/magit/magit/issues/383

    It was a long night (and I had to leave on a trip the next morning). Now it's fun memory, perhaps with a number of lessons in it.

  • prelude

    Prelude is an enhanced Emacs 25.1+ distribution that should make your experience with Emacs both more pleasant and more powerful.

  • Project mention: 2024-01-01 Emacs News | news.ycombinator.com | 2024-01-05

    > I forgot how absolutely horrible the new user experience is...

    The bbatsov/prelude project was started in 2011 to help address that problem. I started using it not long after that, and it's been a joy to use ever since.

    And by "started using" I mean I forked it on GitHub, stared personalizing, and then merging/rebasing from upstream ever since at my own leisure.



    From 2011 to present, not everyone in the Emacs community feels bbatsov's Emacs Prelude makes the best/correct decisions, but given how long Emacs has been around and how large the community has been over time, what can you really expect?

    It's certainly a lighter-weight starter kit compared to Doom Emacs and Spacemacs. (I'm not knocking those projects!). I've also looked at some of the newer starter kits mentioned in other comments here and previous HN threads; they seem okay to me, just reinventing a lot of the same "wheels" you'll find in Prelude but in a less refined form in many cases... such are the freedoms, joys, and trials of Free Software.

  • lsp-mode

    Emacs client/library for the Language Server Protocol

  • Project mention: lsp-mode: Emacs client/library for the Language Server Protocol | /r/planetemacs | 2023-10-15
  • remacs

    Rust :heart: Emacs

  • use-package

    A use-package declaration for simplifying your .emacs

  • Project mention: Use-Package & different key bindings based on host computer | /r/emacs | 2023-06-29

    Another way would be to redefine parts of the bind-key macro or its use-package support functions

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • projectile

    Project Interaction Library for Emacs

  • Project mention: Fuzzy Finding with Emacs Instead of Fzf | news.ycombinator.com | 2023-12-10

    Could you explain more about this setup? I'm not familiar with "projectile". Is this https://github.com/bbatsov/projectile the same thing you're referring to?

    Sounds interesting. What I've done recently is open my vim in the folder that contains all the organization's repos (the ones I've cloned) and just run ripgrep inside vim to find examples or references to whatever I've seeking. Seems performant enough even without doing anything except letting ripgrep ignore git-ignored stuff (default behavior of ripgrep).

  • cider

    The Clojure Interactive Development Environment that Rocks for Emacs (by clojure-emacs)

  • Project mention: CIDER 1.8 ("Geneva") is out! | /r/Clojure | 2023-10-15
  • helm

    Emacs incremental completion and selection narrowing framework (by emacs-helm)

  • Project mention: lsp-treemacs icons not showing in Mac Terminal | /r/emacs | 2023-10-18

    (setq inhibit-startup-message t) (setq visible-bell t) (setq make-backup-files nil) ; Disable the creation of ~ files (setq auto-save-default nil) ;; stop creating those #auto-save# files (setq display-line-numbers-mode t) ;(scroll-bar-mode -1) ; Disable visible scrollbar. Only for visual GUI ;(tool-bar-mode -1) ; Disable the toolbar. Only for visual GUI ;(tooltip-mode -1) ; Disable tooltips (menu-bar-mode -1) ; Disable the menu bar. Only for visual GUI ;(set-fringe-mode 10) ;(setq visible-bell t) ; Mac OSX specific ;mac-function-modifier ;mac-control-modifier) ;mac-command-modifier ;mac-option-modifier ;mac-right-command-modifier ;mac-right-control-modifier ;mac-right-option-modifier ;; key bindings (when (eq system-type 'darwin) ;; mac specific settings (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (prefer-coding-system 'utf-8) (setq mac-command-modifier 'meta) (setq mac-control-modifier 'control) (global-set-key [kp-delete] 'delete-char) ;; sets fn-delete to be right-delete ) ;; ORG Mode (global-set-key (kbd "C-c l") #'org-store-link) (global-set-key (kbd "C-c a") #'org-agenda) (global-set-key (kbd "C-c c") #'org-capture) ;; packages (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) ;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities` ;; and `package-pinned-packages`. Most users will not need or want to do this. ;;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t) (package-initialize) ;; LSP-mode config (setq package-selected-packages '(lsp-mode yasnippet lsp-treemacs helm-lsp projectile hydra flycheck company avy which-key helm-xref dap-mode)) (when (cl-find-if-not #'package-installed-p package-selected-packages) (package-refresh-contents) (mapc #'package-install package-selected-packages)) ;; sample `helm' configuration use https://github.com/emacs-helm/helm/ for details (helm-mode) (require 'helm-xref) (define-key global-map [remap find-file] #'helm-find-files) (define-key global-map [remap execute-extended-command] #'helm-M-x) (define-key global-map [remap switch-to-buffer] #'helm-mini) (which-key-mode) (add-hook 'c-mode-hook 'lsp) (add-hook 'c++-mode-hook 'lsp) (lsp-treemacs-sync-mode 1) (setq gc-cons-threshold (* 100 1024 1024) read-process-output-max (* 1024 1024) treemacs-space-between-root-nodes nil company-idle-delay 0.0 company-minimum-prefix-length 1 lsp-idle-delay 0.1) ;; clangd is fast (with-eval-after-load 'lsp-mode (add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration) (require 'dap-cpptools) (yas-global-mode)) ;; theme (load-theme 'modus-vivendi t)

  • evil

    The extensible vi layer for Emacs.

  • Project mention: Helix-gpui: helix gpui front end | news.ycombinator.com | 2024-05-27

    Emacs is whatever you want it to be, and it has wonderful modal editing packages such as evil-mode[1] - which surpasses the editing system from vi that it is based on - and Meow[2]

    1. https://github.com/emacs-evil/evil

    2. https://github.com/meow-edit/meow

  • straight.el

    ๐Ÿ€ Next-generation, purely functional package manager for the Emacs hacker.

  • Project mention: Alternative to LSP for C/C++ that doesnโ€™t require installing extra packages on the system | /r/emacs | 2023-06-25

    Very dated and next to useless on large complex CPP codebases. Use a language server. I recommend the straight package manager. https://github.com/radian-software/straight.el

  • nano-emacs

    GNU Emacs / N ฮ› N O - Emacs made simple

  • Project mention: :syntax off (2016) | news.ycombinator.com | 2024-03-13

    Both points resonate with me, but I'd push back againt the idea that colored syntax highlighting is neccessary for either. I'm thinking of the Pygments 'bw' theme[1], which denotes strings in italics, and nano-emacs[2], which also manages to do.. a lot with a little (at least aesthetically, ie. idk about code volume or corner cases).

    1: https://pygments.org/styles/

    2: https://github.com/rougier/nano-emacs

  • flycheck

    On the fly syntax checking for GNU Emacs

  • know-your-http-well

    HTTP headers, media-types, methods, relations and status codes, all summarized and linking to their specification.

  • Project mention: So many feed readers, so many behaviors | news.ycombinator.com | 2024-05-28

    Not sure about best practices, but these two resources are a good reference point:

    - Know Your HTTP Well: https://github.com/for-GET/know-your-http-well

    - HTTP Decision Diagram: https://github.com/for-GET/http-decision-diagram

  • swiper

    Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man! (by abo-abo)

  • Project mention: Flexible, simple tools for minibuffer completion in Emacs | news.ycombinator.com | 2024-01-02
  • themes

    A megapack of themes for GNU Emacs. (by doomemacs)

  • Project mention: Switching to emacs, but the Gruvbox theme here looks different than in CLion or VIM | /r/emacs | 2023-12-06

    Try doom-theme's gruvbox theme and see if you like it

  • treemacs

  • Project mention: Notion like tree viewer for notes | /r/emacs | 2023-10-06

    Im trying to find any, but everything I have is https://github.com/Alexander-Miller/treemacs and https://github.com/alphapapa/org-sidebar which is not what im looking for. Please help!

  • .emacs.d

    Centaur Emacs - A Fancy and Fast Emacs Configuration

  • Elpy

    Emacs Python Development Environment

  • smartparens

    Minor mode for Emacs that deals with parens pairs and tries to be smart about it.

  • auto-complete

    Emacs auto-complete package

  • emacs-which-key

    Emacs package that displays available keybindings in popup

  • Project mention: Improving Emacs Isearch Usability with Transient | news.ycombinator.com | 2023-12-20

    I think which-key already solves exactly that: https://github.com/justbur/emacs-which-key

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

Emacs Lisp Emacs discussion

Log in or Post with

Emacs Lisp Emacs related posts


What are some of the best open-source Emac projects in Emacs Lisp? This list will help you:

Project Stars
1 spacemacs 23,537
2 doomemacs 18,762
3 magit 6,419
4 prelude 5,077
5 lsp-mode 4,703
6 remacs 4,570
7 use-package 4,370
8 projectile 3,939
9 cider 3,517
10 helm 3,348
11 evil 3,270
12 straight.el 2,673
13 nano-emacs 2,491
14 flycheck 2,390
15 know-your-http-well 2,384
16 swiper 2,264
17 themes 2,129
18 treemacs 2,040
19 .emacs.d 1,926
20 Elpy 1,878
21 smartparens 1,800
22 auto-complete 1,722
23 emacs-which-key 1,719

Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.