An out-of-the-box Emacs configuration with super-powers
An old video demo
super-emacs can be used in two ways.
Getting it from GitHub is 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 super-powers.
super-emacs is also available on Docker. To start it, run a command that looks like:
docker pull myterminal/super-emacs
- 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
- 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-xis 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
- Statistical computing with R Markdown files through ESS and polymode
- Some more configuration to improve usability
- multiple-cursors to allow spawning of multiple cursors to editing text that follows a particular pattern
- auto-complete to intelligently save key-strokes
- undo-tree to provide a means to move back to a particular point of time through a visual timeline of changes
- sublimity to be able to scroll buffers smoothly
- 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
- Color themes
- 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
Added key-bindings over stock Emacs
Refer config-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 Fedora dnf install aspell
# 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.
super-emacs comprises entirely of plain-text Elisp files. Not everyone has the same setup and that means that you can (and may) change these files according to your need. However, if you're the kind of person who regularly pulls updates from upstream, there's a high probability that future improvements may end up resulting in merge conflicts on your local workspace. In order to solve this problem (and according to a suggestion from @ericllazarus), the arrangement now has a redesign providing the user a way 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/super-emacs with a name starting with
config- can be extended by creating another file next to it with the same name but ending with a
-custom.el. For example, if you plan to extend the file config-packages.el, you can create a file with the name
config-packages-custom.el next to it in order to hold custom configuration. super-emacs will load the original file first followed by the custom file (if it exists) in the right order as designed and you will achieve the effect you desire. Whenever there's an update to the original file, there will be no merge conflicts and life would be so much simpler!
If you're looking for a light-weight setup, try ample-emacs.
For an even more comprehensive setup, refer to my personal configs.