Welcome to Awesome Emacs, a community driven list of useful Emacs packages, utilities and libraries. Most of the following packages are available in MELPA. We recommend installing packages with it.
Also, please do consider contributing back to the Emacs community. One major way is by financially sponsoring the lead developers and teams of developers that create and maintain the wonderful Emacs packages that so many of us use. Elisp Maintainers provides a fantastic collection of ways that one can donate to several prolific Emacs package developers. Please do so donate.
Above, all enjoy using Emacs. The community, that more than anything, makes Emacs a great ecosystem and place to develop, learn and grow.
- Awesome Emacs
- Interface Enhancement
- File Manager
- Navigation
- Visual
- Editing
- Project management
- Programming
- Programming Language
- Keys Cheat Sheet
- Note
- Version control
- Integration
- Markdown
- LaTeX
- Internet
- DevOps
- Package Management
- Library
- Appearance
- Theme
- Multimedia
- Finance
- Fun
- Music
- Starter Kit
- Noteworthy Configurations
- Tutorials
- Links and resources
- Contributing
- Other Awesome Lists
- License
- IDO -
[built-in]
Interactively do things with buffers and files.- ido-completing-read+ - Enhance the built-in ido for completion all over Emacs.
- ido-vertical-mode - 9E81 Make ido display vertically.
- Helm - (Formerly ‘Anything’) A powerful completion and selection narrowing framework. ( External Guides 1 )
- Ivy - flexible, simple tools for minibuffer completion in Emacs.
- Ivy, a generic completion mechanism for Emacs.
- Counsel, a collection of Ivy-enhanced versions of common Emacs commands.
- Swiper, an Ivy-enhanced alternative to isearch.
- Icicles - An Emacs library that enhances minibuffer completion.
- smex - A smart M-x enhancement for Emacs.
- tabbar - Display a tab bar in the header line.
- awesome-tab - Out of box extension to use tab in Emacs, build-in projectile support and many awesome features.
- centaur-tabs - Aesthetic, functional tabs plugin with icons and styles, Helm, Ivy and Projectile integration, supported by many popular themes.
- winner -
[built-in]
“Undo”(and “redo”) changes in the window configuration with the key commands. - sublimity - smooth-scrolling, minimap inspired by the sublime editor.
- ElScreen - Utility for multiple screens.
- workgroups2 - Session manager, saves all your opened buffers, their location and sizes on disk to restore later.
- ace-popup-menu - Replace GUI popup menu with something more efficient.
- multi-compile - Multi target interface to compile.
- Dashboard - A startup dashboard which provides certain information about your recent Emacs activities.
- EXWM - EXWM turns Emacs into a full-featured tiling X window manager.
- Helm-EXWM - EXWM-specific sources for Helm together with an application launchers and switches.
- Zoom - Fixed and automatic balanced window layout for Emacs.
- Eyebrowse - A simple-minded way of managing window configs in emacs.
- Helpful - An enchancement of the Emacs built-in help system.
Possibly help prevent keyboard related repetitive strain injury (RSI) from occurring.
- Evil - An e xtensible vi l ayer: manipulate Emacs with Vi key binding.
- Evil Collection - A collection of Evil bindings.
- Evil Ediff - Evil bindings for Ediff.
- Evil Magit - Evil bindings for Magit.
- Evil mu4e - Evil bindings for mu4e.
- LispyVille - Evil bindings for lispy-mode.
- Hydra - Make bindings that stick around.
- god-mode - Global minor mode for entering Emacs commands without modifier keys.
- modalka - Introduce native modal editing of your own design.
- xah-fly-keys - A modal keybinding for emacs (like vim), but based on command frequency and ergonomics.
- ergoemacs-mode - Global minor mode to use both common interface keys and ergonomic keys for emacs.
- general - A convient, unified interface for key definitions - like use-package but for key-bindings.
- Dired -
[built-in]
Dir ectory Ed itor. A customizable great file manager.- Dired+ - Functional & interface extensions for Dired.
- dired-hacks - Collection of useful Dired additions.
- dired-k - Highlight Dired buffer by file size, modified time, git status.
- NeoTree - A emacs tree plugin like NERD tree for Vim.
- Sr Speedbar - Same frame speedbar.
- projectile-speedbar - Speedbar and Projectile integration.
- Direx - directory tree explorer.
- ztree - Directory tree comparison mode.
- Ranger - ranger like file manager based on Dired.
- Sunrise Commander - Twin-pane file manager for Emacs based on Dired and inspired by Midnight Commander.
- Treemacs - a tree layout file explorer for Emacs.
- Sidebar.el - A customizable file explorer with git integration for emacs.
- tramp-hdfs - Browse HDFS in Emacs with dired using Tramp.
- windmove -
[built-in]
Tired withC-x o
? Now you can useshift+arrows
to jump between windows. - Ace jump - A quick cursor jump mode.
- Avy - Jump to visible text using a char-based decision tree.
- iy-go-to-char - Go to next CHAR which is similar to “f” and “t” in vim, works well with Multiple Cursors.
- goto-last-change - Move point through buffer-undo-list positions.
- Helm-swoop - Efficiently jump between matched string/lines.
- anzu - displays current match and total matches.
- imenu -
[built-in]
Menus for accessing locations in documents. - imenu-anywhere - IDO/Helm imenu tag selection across all buffers with the same mode.
- Minimap - A SublimeText-style minimap sidebar.
- switch-window - A visual replacement for
C-x o
. - ace-window - Quickly switch windows.
- ace-link - Quickly follow links in
org-mode
,help-mode
,Info-mode
, and several other modes. - back-button - Visual navigation through mark rings.
- bm - Visual Bookmarks, provides an easy way to navigate in a buffer.
- buffer-move - Move or swap buffer to other window.
- emacs-pophint - Provide navigation like the Vimperator/KeySnail Hint Mode of Firefox.
- vertigo.el - Jump lines using the home row.
- undo-tree - Visualize the whole undo history in buffer as a tree, and you can access anywhere in it.
- highlight-symbol - Auto/manually highlight the same symbols in code, navigate in them, or replace string.
- rainbow-delimiters - Highlights parentheses, brackets, and braces according to their depth.
- rainbow-mode - Colorize color names in buffers.
- visual-regexp - Replace via RegExp, with real-time visual feedback directly in the buffer.
- visual-regexp-steroids - The same as visual-regexp, but use modern regular expressions instead of Emacs-style.
- whitespace -
[built-in]
Visualize blanks (tab/space/newline). - linum-relative - display relative line number in the left margin in emacs.
- prettify-symbol-mode -
[built-in]
displaying characters as fancy symbols (e.g.lambda
->λ
). - typo.el - Emacs extension for typographical editing.
- highlight-thing - Light-weight minor mode to highlight thing under point using built-ins.
- focus - Dim the font color of text in surrounding paragraphs.
- beacon - Never lose your cursor again.
- dimmer.el - Interactively highlight which buffer is active by dimming the others.
- volatile-highlights.el - Minor mode for visual feedback on some operations in Emacs.
- color-identifiers-mode - Color Identifiers is a minor mode for Emacs that highlights each source code identifier uniquely based on its name.
- yascroll-el - Yet Another Scroll Bar Mode.
- goto-line-preview - Preview line when executing `goto-line` command.
- highlight-parentheses.el - highlight surrounding parentheses.
- Multiple cursors - Mark, edit multiple lines at once.
- pangu-spacing - Minor-mode to automatically add space between CJK and Latin characters.
- hungry-delete - Delete an entire block of whitespace at point.
- smart-hungry-delete - Delete whitespace between words, parenthesis and other delimiters in a (not very) smart way.
- Drag Stuff - Drag Stuff is a minor mode for Emacs that makes it possible to drag stuff (words, region, lines) around in Emacs.
- expand-region.el - Increase selected region by semantic units.
- multifiles.el - View and edit parts of multiple files in one buffer.
- lentic - Create views of the same content in two Emacs buffers.
- fix-word - Transform words in Emacs (upcase, downcase, capitalize).
- string-inflection - Conversion of text between lowercase, uppercase, camelcase etc.
- zzz-to-char - Fancy replacement for `zap-to-char`.
- ialign - Interactively align lines using a regular expression.
- artist-mode -
[built-in]
Draw ASCII lines, squares, rectangles and poly-lines, ellipses, and circles with your mouse and/or keyboard. - crux - A Collection of Ridiculously Useful eXtensions for Emacs.
- move-text - move current line or region up or down.
- Popup-killring - Browse kill-ring with popup menu.
- Browse-kill-ring - Visually navigate kill-ring.
- easy-kill - Kill & Mark Things Easily in Emacs.
- clipmon - Clipboard monitor for Emacs. Monitors clipboard and pastes contents on change.
- simpleclip - Simplified access to the system clipboard.
- Projectile - Project Interaction Library for Emacs.
- Prodigy - Manage external services from within Emacs.
- Project-Explorer - a tree project explorer (integrates with projectile).
- Find-file-in-project - Quick access to project files in Emacs.
- CEDET -
[built-in]
an advanced development environment in Emacs. - C-xrefactory - refactoring tool and code browser for C and Java.
- YASnippets - A template system that allows you to type an abbreviation and automatically expand it into function templates.
- auto-yasnippet - Advanced copy-paste using Yasnippet.
- tiny - Templates based on linear range transformations.
- evil-nerd-commenter - Comment/uncomment lines efficiently. Like Nerd Commenter in Vim. This program can be used independently without evil-mode.
- mmm-mode - allows Multiple Major Modes to coexist in one buffer (ex: Embedded CSS & JS in HTML file).
- SmartParens - Deals with parens pairs and tries to be smart about it.
- Aggressive-indent - Keeps your code always indented automatically.
- indent-guide - Show vertical lines to guide indentation.
- Doxymacs - Doxymacs is Doxygen + {X}Emacs.
- whitespace-cleanup-mode - Intelligently call whitespace-cleanup on save.
- ggtags - Emacs frontend to GNU Global source code tagging system.
- lsp-mode - Emacs client for the Language Server Protocol
- lsp-ui - An extension which adds code lenses and documentation pop-up for lsp-mode
- eglot - A client for Language Server Protocol servers.
- ws-butler - Unobtrusively trim extraneous white-space ONLY in lines edited.
- format-all - Auto-format source code in many languages using the same command.
- Auto-Complete - An intelligent auto-completion extension with great interface.
- Company - A text completion framework.
- company-quickhelp - Documentation popups for company.
- flx - Fuzzy matching for Emacs like Sublime Text.
- abbrev -
[built-in]
Abbreviation expander. - emacs-ycmd - Emacs client for YCM.
- realgud - A modular front-end for interacting with external debuggers.
- dap-mode - An implementation of the debug adapter protocol used in VSCode and other editors.
- Helm-dash - Browse Dash docsets via Helm interface.
- eldoc -
[built-in]
shows function arguments / variable doc in minibuffer when coding.
- vimish-fold - Vim-like text folding.
- hideshow -
[built-in]
Folding regions by balanced-expression code.- hideshowvis - Based on
hideshow
, just display its nodes on fringe.
- hideshowvis - Based on
- Origami.el - Feature rich text folding minor mode.
- FlyMake -
[built-in]
on-the-fly syntax checks on files using external tools. - Flycheck - Modern on-the-fly syntax checking meant to be a replacement to
FlyMake
.
- GNU Global - advanced source code tagging system with jump to definition functionality.
- Dumb Jump - easy jump to definition package for multiple languages using
ag
orgrep
.
- CC Mode -
[built-in]
An Emacs and XEmacs mode for editing C and other languages with similar syntax. - rtags - A C/C++ client/server indexer with for integration with emacs based on clang.
- emacs-cquery - Emacs client of cquery, a C/C++/Objective-C language server powered by clang.
- irony-mode - A C/C++ minor mode for Emacs powered by libclang.
- cmake-font-lock - Enhanced font-lock rules for CMake.
- function-args - visual CEDET enhancements for C++.
- Ebrowse -
[built-in]
A C++ class browser. - cmake-ide - Configures other packages to consider compile options like include paths from cmake projects to improve e.g. autocompletion.
- Elpy - An Emacs Python development environment.
- anaconda-mode - Code navigation, documentation lookup and completion for Python.
- virtualenvwrapper.el - Manage virtualenv from inside Emacs.
- pipenv.el - Integrates pipenv to emacs providing useful commands.
- renpy-mode - Emacs major mode for working with the Ren’Py visual novel engine.
- rvm - Ruby versions manager within Emacs.
- bundler - Interact with gem Bundler from Emacs.
- inf-ruby - REPL buffer connected to a Ruby subprocess.
- enhanced-ruby-mode - Enhanced Ruby Mode replaces the emacs ruby mode that comes with ruby. It uses the Ripper class found in ruby 1.9.2 (and later) to parse and indent the source code.
- yari - Yet Another RI interface for Emacs.
- robe - Code navigation, documentation lookup and completion for Ruby.
- rubocop - A Ruby static code analyzer, based on the community Ruby style guide.
- motion-mode - A package to provide emacs’ major mode for RubyMotion enviroment.
- rspec-mode - An RSpec minor mode for Emacs.
- feature-mode - Emacs mode for editing Cucumber plain text stories.
- rinari - Rinari Is Not A Rails IDE (it is an Emacs minor mode for Rails).