em
is a somewhat minimal, somewhat practical, somewhat sensible, Nix-packaged Emacs bundle.
It is mainly intended for Haskell development.
Nix is a prerequisite.
./install.sh
Once done, em
, a basic shell wrapper around emacs
is available in the user environment.
emn
is a non-blocking variant of em
(convenience for nix-shell
usage).
S-<arrows>
- Directional navigation (
windmove-left
/right
/up
/down
) C-Tab
- Cycle (
other-window
) C-c C-<left/right>
- undo/redo any window layout changes (
winner-undo
/redo
)
M-SPC
- Quick list of same-type buffers (
bs-show
) S-M-SPC
- Full list of buffers (
ibuffer
)
`
- Quick navigate in repo files (
helm-ls-git-ls
) <menu>
- Everything git (
magit-status
) C-c m
- Rename current file and buffer (
rename-this-buffer-and-file
) C-<pgup>
/<pgdown>
- Left sidebar: move to prev/next (
neotree-tab-move
)
M-s
- Grep in root of current git repo (
helm-grepint-grep-root
) C-<super>-s
- Hoogle inside the current Nix shell (
helm-hoogle-at-point
) <f1>
- Interactive Emacs command/function/variable ‘apropos’ (
helm-apropos
) C-x C-z
- Recall results of ANY last Helm search (
helm-resume
)
<f4>
- Set a Cabal lib target for Dante (
dante-set-lib
) - open any
.hs
file - Dante is started, but will fail, unless you set the Cabal target before doing this. It’s also beneficial to prebuild the target in CLI beforehand.
M-p
/M-n
- Navigate between error messages
<f10>
- Insert current date
C-up
- Join current line to the previous one
C-x a r
- Align by regexp