Git Product home page Git Product logo

awesome-emacs's Introduction

Awesome Emacs

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

Interface Enhancement

  • 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.
  • winner - [built-in] “Undo”(and “redo”) changes in the window configuration with the key commands.
  • Evil - An e xtensible vi l ayer: manipulate Emacs with Vi key binding.
  • sublimity - smooth-scrolling, minimap inspired by the sublime editor.
  • ElScreen - Utility for multiple screens.
  • god-mode - Global minor mode for entering Emacs commands without modifier keys.

File Manager

  • 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

Navigation

  • windmove - [built-in] Tired with C-x o? Now you can use shift+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.

Project management

  • 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)

Programming

  • 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.
  • Aggressive-indent - Keeps your code always indented automatically.
  • indent-guide - Show vertical lines to guide indentation
  • Doxymacs - Doxymacs is Doxygen + {X}Emacs.

Completion

  • 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

Code Folding

  • hideshow - [built-in] Folding regions by balanced-expression code.
    • hideshowvis - Based on hideshow, just display its nodes on fringe.

Error Checking

  • 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

Programming Language

C/C++

  • rtags - A C/C++ client/server indexer with for integration with emacs based on clang.
  • irony-mode - A C/C++ minor mode for Emacs powered by libclang.
  • cmake-font-lock - Enhanced font-lock rules for CMake.

Python

  • 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.

Ruby

  • 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).

Lisp Family

  • Paredit - Minor mode for editing parentheses. Strict parenthesis auto-pairing and easy depth adjustment. Compatible with Lisp/Scheme/Clojure.

Common Lisp

  • SLIME - A fully-functional IDE for Common Lisp development, with debugger, REPL.
    • SLY - A fork of SLIME.

Scheme

  • Quack - Enhanced Emacs Support for Editing and Running Scheme Code.
  • Geiser - Intergrated development with Guile and Racket.

Clojure

Web / JavaScript / CSS

  • 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.

Java

  • emacs-eclim - An Eclipse plugin which exposes Eclipse features through a server interface.

SML

  • SML mode - a major Emacs mode for editing Standard ML source code.

OCaml

  • tuareg - a Caml mode for Emacs.
  • TypeRex - a set of tools for developing in OCaml.

Erlang

  • 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

  • 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:

Visual

  • 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.

Keys Cheat Sheet

  • 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.

Editing

  • 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.

Kill-ring

Note

  • Org - [built-in] Write notes, GTD, authoring, publish and wash dishes.
  • Emacs Muse - a publishing environment for Emacs.

Version control

  • 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.

Integration

Console

  • 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.

Search

Ack

Ag

  • ag.el - An Emacs frontend to Ag (“the silver searcher” ack replacment)
  • helm-ag - Ag with helm interface

Pt

Pastebin

Google

LaTeX

  • 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.

Internet

Mail

  • Gnus - [built-in] Reading e-mail and Usenet news.
  • Messages - [built-in] Composing and sending e-mail inside Emacs.
  • mu4e - An e-mail client for Emacs
  • notmuch - A mail indexer which can serve as a complete client with its emacs integration

IRC

  • ERC - [built-in] A powerful, modular, and extensible IRC client.
  • Riece - An IRC client for Emacs.
  • Rcirc - [built-in] Next generation IRC client.

Social Network

RSS

  • Elfeed - RSS Reader for Emacs.

Package Manager

  • 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.

Library

  • dash.el - A modern list library.
  • s.el - String manipulation library.
  • ht.el - The missing hash table library for Emacs.
  • 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.

Appearance

Theme

  • 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.

Fun

  • 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.
  • minesweeper.el - an implementation of minesweeper in emacs.
  • 2048-game.el - an implementation of 2048 in emacs.

Starter Kit

Contributing

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.

Before contributing, please read this tiny guideline:

The Order of Items

Please don’t rearrange packages’ ordering without any reason! The items should be sorted by its popularity ( roughly, because it’s impossible to have a precious standard. e.g. most of people would use it; recommended for every newbie…)., instead of your personal preference.

For example, Evil is obviously not a package that every Emacser needs. So please don’t move it onto top in its category.

In contrast, if you think a package is recommended for every Emacser (especially for newbie), just place it at a higher place in list.

Emacs Built-In Packages

If a package is available in latest Emacs, please remember to add a [built-in] tag in the front of description.

Generate “Table of Contents”

After editing and ready 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.

Other Awesome Lists

Other amazingly awesome lists can be found in the awesome-awesomeness list.

awesome-emacs's People

Contributors

agsdot avatar bjonnh avatar cataska avatar cocreature avatar danlamanna avatar fwkroon avatar hongxuchen avatar kepi avatar kuanyui avatar letoh avatar pawelbx avatar rhoit avatar ripple0328 avatar sjrmanning avatar superbil avatar syl20bnr avatar yfwu avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.