Skip to content

An out-of-the-box Emacs configuration with super powers

License

Notifications You must be signed in to change notification settings

omaciel/super-emacs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

super-emacs

Banner

Docker Automated Docker Stars Docker Pulls Docker Layers
License Join the chat at https://gitter.im/myTerminal/super-emacs

An out-of-the-box Emacs configuration with super-powers

An old video demo

http://img.youtube.com/vi/mRoGM_-8K9g/0.jpg

Setup

super-emacs can be used in two ways.

GitHub

Getting it from GitHub is the easier of the two methods. You just need to clone the repository on your local workspace like:

git clone https://github.com/myTerminal/super-emacs.git

Then the only next step would be to make sure that .emacs.d is at the root of your home directory.

You can either place it there manually or otherwise create a soft link from its location to the home directory.

ln -s </path/to/cloned/project>/super-emacs/.emacs.d ~/.emacs.d

A clear advantage of the above method would be that you can pull updates from upstream with almost no effort.

Once done, start Emacs to enjoy new superpowers.

XDG support in Emacs 27+

Emacs 27 comes with XDG support and hence will also work with ~/.config/emacs. To be able to use super-emacs that way (which may as well be the only way soon), you can link it in the following way:

ln -s </path/to/cloned/project>/super-emacs/.emacs.d ~/.config/emacs

Docker Hub

super-emacs is also available on Docker. To start it, run a command that looks like this:

docker pull myterminal/super-emacs

Features

Highlights

  • Minimal interface with almost everything except the window turned off
  • overcast-theme applied by default, with a readable font-size
  • MELPA added as a package archive and package management using quelpa instead of package.el for reliable versioning of packages
  • Easy IDE-like project interaction with projectile and dumb-jump
  • Opinionatedly better file-management with ranger.el
  • Smooth scrolling with sublimity
  • Spell-check with ispell using an external spell checker aspell
  • Navigation through buffers simplified with winner and windmove.
  • See command suggestions when C-x is pressed, using which-key
  • Super-easy file system navigation with neotree
  • No more welcome screen, Emacs starts up to greet you and shows the date
  • Reload file in a buffer quickly with <f5>
  • Statistical computing with R Markdown files through ESS and polymode
  • Some more configurations to improve the usability
  • Adaptive behavior between graphical and non-graphical mode

Pre-configured packages

  • Text-editing
    • multiple-cursors to allow spawning of multiple cursors to editing text that follows a particular pattern
    • company for auto-completion
    • sublimity to be able to scroll buffers smoothly
  • Navigation
    • dumb-jump to provide a 'zero-configuration' setup for "jump-to-definition" to quickly jump to implementation of a particular function to see its implementation
    • ace-jump-mode to be able to jump around in a buffer (and back) quickly
    • ace-window to be able to switch windows visually with minimal key-presses
    • buffer-move for moving buffers within windows like a breeze
  • Programming tools
    • projectile to be able to work with projects as you do in modern IDEs
  • File-system
    • ranger.el to bring a ranger-like file-manager to Emacs
    • neotree to be able to spawn a tree at any directory
    • ztree for an efficient directory tree comparison
  • Color themes
  • Super-powers
    • which-key to provide instant help around key-bindings as you press keys
    • ivy (along with counsel and swiper) to make your experience with Emacs better
    • counsel-projectile to enable ivy integration for projectile
    • myterminal-controls for quick-toggle controls that can be spawned with a single key-stroke
  • Visual tweaks
    • powerline to decorate your mode-line and add more information
  • Miscellaneous

Added key-bindings over stock Emacs

Refer basic/key-bindings.el and standard/key-bindings.el for all the pre-configured key-bindings for your convenience.

Optional external dependencies

aspell for spell-check

The presence of this package is detected for use with ispell for spell-check. Refer to the official site for instructions on how to install it on your operating system.

It could be as easy as

# For Debian/Ubuntu
apt install aspell

OR

# For Fedora
dnf install aspell

OR

# For Arch Linux
pacman -S aspell

OR

# For macOS
brew install aspell

depending upon your operating system.

R for statistical computing

To be able to work with R Markdown files, super-emacs comes pre-configured with all the required packages except for an external dependency on R which needs to be installed on the system.

Customizing

Not everyone has the same setup and that means that you can (and may) change the configuration files according to your need. However, if you plan to clone this project, use it for your Emacs through a soft-link and pull updates from upstream regularly, there's a high probability that future improvements may end up resulting in merge conflicts on your local workspace. To solve this problem (and according to a suggestion from @ericllazarus), super-emacs has been redesigned in a way that it now enables the user to extend their configuration without causing conflicts with future updates. One recommended way of extending super-emacs is described below.

All configuration files under .emacs.d/modes/basic and .emacs.d/modes/standard can be extended through contents in their neigboring *-custom.el file. For example, if you plan to extend the file basic/packages.el, you can place your personal configuration in the file basic/packages-custom.el. super-emacs will load the files in the right order so that your custom configurations will override the ones from super-emacs. This way, whenever there's an update to the original file, there will be no merge conflicts and life would be so much simpler!

More

If you're looking for a light-weight setup, try ample-emacs.

For an even more comprehensive setup, refer to my personal configs.

About

An out-of-the-box Emacs configuration with super powers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Emacs Lisp 97.8%
  • Dockerfile 2.2%