__ __
/ /_ ____ / /_ __ ___ ____ ___ ____ ___________
/ __ \/ __ \/ / / / / / _ \/ __ โ__ \/ __ โ/ ___/ ___/
/ / / / /_/ / / /_/ / / __/ / / / / / /_/ / /__(__ )
/_/ /_/\____/_/\__, / \___/_/ /_/ /_/\__,_/\___/____/
/____/
You can use any editor you want, but remember that vi vi vi is the text editor of the beast.
- Uses
straight
for package and dependency management to provide a completely reproducible setup. All required packages are installed on startup. - Includes
magit
,helm
,projectile
,company
andyasnippet
. - Uses
god-mode
for modal editing. All key bindings work ingod-mode
and it's only used to reduce the usage of modifier keys. - Uses
use-package
andbind-key
. C-h C-l orM-x describe-personal-keybindings RET
will display all available key bindings. - Uses
which-key
to interactively describe key bindings. - Uses
desktop-save-mode
to manage sessions and buffers. - Uses
editorconfig
to handle multiple indentation styles. - Upgrade all packages using
M-x straight-pull-all RET
ormake upgrade-packages
.
git clone [email protected]:darth10/holy-emacs.git ~/.emacs.d
cd ~/.emacs.d
# edit init.el if needed
make
On Windows, if you see strange icons/symbols, install all-the-icons
.
There are several options that you can customize through M-x customize-group RET holy-emacs RET
.
All customized variables and faces are saved to ~/.emacs.d/var/lib/custom-defs.el
and will be loaded before the default configuration on startup.
You can also further customize your Emacs configuration using Emacs Lisp code in a couple ways.
- The
~/.emacs.d/var/lib/
directory. Files in this directory will be loaded before the default configuration on startup. - A directory specified by the
HOLY_EMACS_HOME
environment variable. This defaults to~/.holy-emacs.d/
if theHOLY_EMACS_HOME
environment variable is not set. This folder can be stored together with your dotfiles. Files in this directory will be loaded after the default configuration on startup.
Use ESC or M-i to toggle god-mode
.
In god-mode
, i will also disable god-mode
.
Remember that you can use C-[, or just [ in god-mode
, instead of ESC.
This has the same effect as using the meta (M-) modifier.
- C-x C-c becomes xc.
- C-x ( becomes x (. Note the use of the space key.
- M-x becomes gx.
- C-M-c becomes Gc.
- M-10 C-n becomes 10n.
- . or z will repeat the last command.
If you prefer to not use god-mode
, toggle the holy-emacs-enable-god-mode
variable through M-x customize-group RET holy-emacs RET
.
Some of the default Emacs key bindings are changed, as follows.
- C-s will save the current buffer (
save-buffer
). - M-s s and M-s r will perform an incremental
forward and backward search respectively (
isearch-forward
andisearch-backward
). - M-i won't add indentation to current line (
tab-to-tab-stop
). Use M-[ or C-q TAB instead. - M-SPC won't delete all space leaving one space (
just-one-space
). Use C-c \ or C-c C-\ instead. - C-x a n won't move the cursor to the next expansion slot (
expand-jump-to-next-slot
). - F10 won't open the main menu (
menu-bar-open
). - C-z won't minimize Emacs (
suspend-frame
). - C-w will kill the current line and M-w will copy the current line when no region is selected.
- C-x C-c will exit Emacs with a confirmation.
- Emacs Lisp
- Clojure
- Scheme
- JavaScript
- C#
- Go
- Haskell
- Python
- Ruby
- PHP
- C