A not-so-hurt-yet-still-make-kind-of-sense emacs configuration set, c/w a bunch of packages.
- Any specific {package,variable} config should be found no more than
2 layers down from
init.el
. - I will not focus on “startup speed”, since daemonize Emacs is all you need.
cd ~
mv .emacs.d .emacs.d.old
git clone https://github.com/nykma/nema.git .emacs.d
emacs -nw
Hotkey | Command | Defined in | Comment |
---|---|---|---|
C-c g g | magit-status | nema-vcs.el | git status |
C-c g b | magit-blame | nema-vcs.el | git blame current buffer |
C-c g d | magit-diff-buffer-file | nema-vcs.el | git diff current buffer |
C-’ | avy-goto-char-timer | nema-basic.el | Cursor jump to location |
C-> | mc/mark-next-like-this-symbol | nema-basic.el | Multi cursor (find next symbol) |
C-C | mc/edit-lines | nema-basic.el | Multi cursor (add one cursor each line) |
M-S-RET | edwina-clone-window | nema-basic.el | Provided by edwina |
M-i | nema-term | nema-terminal.el | Start a terminal buffer |
C-c & w | aya-create | nema-snippet.el | Create and use a snippet when editing |
C-M-o | ace-window | nema-basic.el | Powerful window switch |
C-1 ~ C-9 | winum-select-window-1 | nema-basic.el | Quick window switch |
nema
to give you a few customization options. Remember to restart emacs
if anything is changed.
nema-use-evil
- Whether or not to use evil-mode. Default to
nil
. My evil-mode intergration is at a very basic level (since I don’t use evil-mode). Any pull request is welcomed. nema-emacs-completion-engine
- Choose between
ivy
,helm
,vertico
andido
. Default toivy
nema-lsp
- Use LSP or not. Remember to follow server installation instructions below. Default to
nil
nema-theme
- Choose one theme from given pre-defined themes list.
nema-theme-style
- Switch between dark and light mode of your theme (if supported).
nema-mode-line
- Choose which mode line to use.
- Write your ELisp in
.emacs.d/my/*.el
. They will be loaded after allnema-*
modules are loaded.- Your YAS snippets will be saved and loaded in
.emacs.d/my/snippets/**/*
. (Seenema-snippet.el
) .emacs.d/my/**/*
is in.gitignore
list. So you can save sensitive data (e.g. IRC login info or Mail account) or some machine-specific configs (e.g. if you have a HiDPI laptop and a workstation with normal DPI displays) without syncing across with VCS.- I’ve written some maybe-useful scripts in
my-sample/*.el
. Symlink (or copy) them into yourmy/
folder to enable them.
- Your YAS snippets will be saved and loaded in
- Fork me.
- If it is run at its first time, make sure not to use
emacs --server
, since it may prompt you of Elisp-enabled themes warning or native plugin compilation. Useemacs
oremacs -nw
instead, and pressy
if prompted. When.emacs.d/custom.el
is built, you can use server mode without problem.
- emacs-tw/emacs-101-beginner-survival-guide who gave me courage to build my very own config from scratch.
- kuanyui/.emacs.d and purcell/emacs.d who provided a good project structure for reference.
- bbatsov/prelude who gave me ideas of how to do theme reloading properly.
- Initialization and core files
- Layer files (
nema-*.el
) my-sample/*.el
See LICENSE
file