An out-of-the-box Emacs configuration with super-powers
super-emacs can be used in two ways.
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.
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
super-emacs is also available on Docker. To start it, run a command that looks like this:
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 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
- 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
- Color themes
- theme-looper for switching themes in style
- overcast-theme as a dark color theme
- 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
- meta-presenter for presenting slide-shows from within Emacs using markdown files
- ESS, polymode, poly-R and poly-markdown for statistical computing with R Markdown files.
Refer basic/key-bindings.el and standard/key-bindings.el for all the pre-configured key-bindings for your convenience.
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.
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!
If you're looking for a light-weight setup, try ample-emacs.
For an even more comprehensive setup, refer to my personal configs.