A community driven list of useful Emacs packages, libraries and others.
Most of the following packages are available in MELPA. We recommend installing packages via it.
Table of Contents
- IDO -
[built-in]
Interactively do things with buffers and files. - Helm - A powerful completion and selection narrowing framework. ( External Guides 1 )
- smex - A smart M-x enhancement for Emacs.
- tabbar - Display a tab bar in the header line.
- Evil - An e xtensible vi l ayer: manipulate Emacs with Vi key binding.
- sublimity - smooth-scrolling, minimap inspired by the sublime editor.
- winner -
[built-in]
“Undo”(and “redo”) changes in the window configuration with the key commands. - ElScreen - Utility for multiple screens.
- Dired -
[built-in]
Dir ectory Ed itor. A customizable great file manager. - Dired+ - Functional & interface extensions for dired.
- NeoTree - A emacs tree plugin like NERD tree for Vim.
- Sr Speedbar - Same frame speedbar.
- Direx - directory tree explorer
- windmove -
[built-in]
Tired withC-x o
? Now you can useshift+arrows
to jump between windows. - Ace jump - A quick cursor jump mode.
- 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
.
- Projectile - Project Interaction Library for Emacs.
- Prodigy - Manage external services from within Emacs.
- Fiplr - An Emacs Fuzzy Find in Project Package.
- Project-Explorer - a tree project explorer (integrates with projectile)
- CEDET -
[built-in]
an advanced development environment in Emacs. - Xrefactory - A refactoring browser for Emacs.
- YASnippets - Template system.
- Helm-dash - Browse Dash docsets via Helm interface.
- evil-nerd-commenter - Comment/uncomment lines efficiently. Like Nerd Commenter in Vim. This program can be used independently without evil-mode.
- SmartParens - Deals with parens pairs and tries to be smart about it
- indent-guide - Show vertical lines to guide indentation
- Auto-Completion - An intelligent auto-completion extension with great interface.
- Company - A text completion framework.
- flx - Fuzzy matching for Emacs à la Sublime Text.
- abbrev -
[built-in]
Abbreviation expander
- hideshow -
[built-in]
Folding regions by balanced-expression code.- hideshowvis - Based on
hideshow
, just display its nodes on fringe.
- hideshowvis - Based on
- 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
- Jedi - A Python auto-completion package.
- Elpy - An Emacs Python development environment.
- anaconda-mode - Code navigation, documentation lookup and completion for Python.
- virtualenvwrapper.el - Manage virtualenv from inside Emacs.
- enh-ruby-mode - Major mode for editing Ruby files.
- robe - Code navigation, documentation lookup and completion for Ruby.
- rinari - Rinari Is Not A Rails IDE (it is an Emacs minor mode for Rails).
- rvm.el - Use rvm to manage ruby versions within emacs.
- Paredit - Minor mode for editing parentheses. Strict parenthesis auto-pairing and easy depth adjustment. Compatible with Lisp/Scheme/Clojure.
- SLIME - A fully-functional IDE for Common Lisp development, with debugger, REPL.
- SLY - A fork of SLIME.
- Quack - Enhanced Emacs Support for Editing and Running Scheme Code.
- Geiser - Intergrated development with Guile and Racket.
- Clojure mode - A major mode for clojure.
- Cider - Clojure IDE and REPL.
- Clojure snippets - Clojure snippets with yasnippet.
- js2-mode - Improved JavaScript editing mode.
- skewer-mode - live interact with JavaScript, CSS, and HTML in a web-browser.
- js-comint.el - Run an inferior javascript REPL process in Emacs.
- web-mode - major mode for editing various html templates (PHP, JSP, ASP, ERB…etc).
- emmet - Emmet support for Emacs.
- impatient-mode - See your changes in the browser as you type.
- php-mode - Major mode for PHP programming.
- SML mode - a major Emacs mode for editing Standard ML source code.
- erlang - the official Erlang mode for Emacs.
- distel - Distel is a library for Emacs<->Erlang communication, plus a suite of tools built on top of it, such as a debugger front-end.
- EDTS - EDTS is meant to be a able to replace Distel but only provides part of the most commonly used of Distel’s features.
- Wrangler - Wrangler is a mode that supports interactive refactoring of Erlang programs
- haskell-mode - major mode for Haskell
- structured-haskell-mode - minor mode for structured editing of Haskell
- HaRe - Haskell refactoring tool with emacs integration
- ghc-mod - backend to provide e.g. type information with an emacs frontend
External Guides:
- 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 - Display color on color-code string (hex/rgb) directly.
- 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.
- discover.el - Discover more of emacs with well-categorized context menus.
- guide-key - Displays the available key bindings automatically and dynamically.
- guide-key-tip - Tooltip version of guide-key.
- 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.
- 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.
- Popup-killring - Browse kill-ring with popup menu.
- Browse-kill-ring - Visually navigate kill-ring.
- Org -
[built-in]
Write notes, GTD, authoring, publish and wash dishes. - Emacs Muse - a publishing environment for Emacs.
- Magit - Interacting with git.
- github-clone.el - Fork and clone Github projects from Emacs.
- git-rebase-mode - Major mode for editing git rebase files
- git-timemachine - Step through historic versions of git controlled files.
- git-gutter - Indicator the modified lines via git diff.
- git-messenger - popup commit message at current line to know why this line was changed.
- EShell -
[built-in]
A shell-like command interpreter implemented in Emacs Lisp. - Term -
[built-in]
A terminal emulator in Emacs. - exec-path-from-shell - Get environment variables such as $PATH from the shell for Mac user.
- multi-term - Managing multiple terminal buffers in Emacs.
- ack-and-a-half - Yet another emacs front-end to ack.
- full-ack - An Emacs front-end for ack.
- helm-ack - Use Ack with Helm interface.
- ag.el - An Emacs frontend to Ag (“the silver searcher” ack replacment)
- helm-ag - Ag with helm interface
- pt.el - An emacs front-end for Pt, the Platinum Searcher.
- gist.el - Paste Gist in Emacs.
- yagist.el - Yet another Gist integration.
- dpaste.el - Emacs mode to post to dpaste.com.
- google-this - A set of functions and bindings to google under point.
- google-translate - Interface to Google Translate.
- g-client - Google client for Emacs.
- AUCTeX - an extensible package for writing and formatting TeX files.
- latex-preview-pane is a minor mode for Emacs that enables you to preview your LaTeX files directly in Emacs.
- Gnus -
[built-in]
Reading e-mail and Usenet news. - Messages -
[built-in]
Composing and sending messages inside Emacs. - mu4e - an e-mail client for emacs
- notmuch - A mail indexer which can serve as a complete client with its emacs integration
- ERC -
[built-in]
A powerful, modular, and extensible IRC client. - Riece - an IRC client for Emacs.
- Rcirc -
[built-in]
Next generation IRC client.
- Twittering mode - Major mode for Twitter.
- Elfeed - RSS Reader for Emacs.
- package.el -
[built-in]
Install and manage Emacs packages easily.- paradox - Modernizing Emacs’ Package Menu with package ratings, usage statistics, customizability & more.
- el-get - apt-get style Emacs packages manager.
- cask - Manage dependencies for your local Emacs configuration and automate the package development cycle.
- pallet - A package management tool for Emacs, built on Cask.
- quelpa - Build and install your Emacs Lisp packages on-the-fly directly from source.
- dash.el - A modern list library.
- s.el - String manipulation library.
- f.el - Modern API for working with files and directories in Emacs.
- Grizzl - A small utility library to be used in other Elisp code needing fuzzy search behaviour.
- ov.el - Overlay library for Emacs Lisp.
- powerline - Emacs version of the Vim powerline.
- powerline-evil - Utilities for better Evil support for Powerline.
- smart-mode-line - A sexy mode-line for Emacs.
- Zenburn - (dark) Vim’s “Zenburn theme” ported to Emacs.
- Solarized - (light/dark) Solarized color theme.
- Sanityinc-tomorrow - (light/dark) An Emacs version of “Tomorrow-themes”.
- Monokai - (dark) A port of the popular TextMate theme Monokai
- Cyberpunk-theme - (dark) [256color] Mostly a direct port of the “Cyberpunk Overtone theme”.
- Ample-theme - (light/dark) [256color] A low-contrast theme for Emacs.
- Moe-theme- (light/dark) [256color] A customizable colorful eye-candy theme. Moe, moe, kyun!
- Leuven-theme -
[built-in]
(light) Awesome Emacs color theme for white backgrounds - Grandshell-theme - (dark) [256color] Theme with intensive colors.
Above list is some of the most popular/installed themes. If still unsatisfied, you also can take a look of GNU Emacs Themes Gallery for screenshots of almost all available Emacs themes.
- Nyan-mode - Let Nyan Cat show you your buffer position in mode line.
- Zone Mode -
[built-in]
A buffer obfuscator, or a screensaver. - swimmers.el - An emacs screensaver.
- Prelude - Prelude is an enhanced Emacs 24 distribution that should make your experience with Emacs both more pleasant and more powerful.
- Emacs-live - M-x start-hacking http://overtone.github.com/emacs-live/ .
- Purcell’s .emacs.d - An Emacs configuration bundle with batteries included.
- Emacs24 Starter Kit - A cleaner version of the literate starter kit based on Emacs24 http://eschulte.github.com/emacs24-starter-kit/ .
- Oh-My-Emacs - Provide an awesome, out-of-box, literate dotemacs for both newbies and nerds. http://xiaohanyu.github.io/oh-my-emacs .
- Cabbage - Get the maximum out of emacs http://senny.github.com/cabbage/ .
- Spacemacs - A slick Evil focused starter kit: do not fear RSI anymore.
- Graphene - A set of defaults for Emacs, for refugees from GUI text editors.
Your contributions are always welcome! Please submit a pull request or create an issue to add a new package, library or software to the list.
After editing and going to commit & push this list, you can use `/gen-toc.el` to update the table of contents with M-x awesome-emacs-gen-toc
in README.org
buffer.
If a package is available in latest Emacs, please remember to add a [built-in]
tag in the front of description.
Other amazingly awesome lists can be found in the awesome-awesomeness list.