This is an ongoing evolution of my original Emacs configuration files, inspired by a bunch of resources I’ve found online.
git clone git@github.com:dawranliou/emacs.d.git
The startup time is ~0.6 seconds on my machine. The only tricks I use is to increase the startup GC threshold and defer loading package loading. Nothing too fancy here.
early-init.el
- See The Early Init Fileinit.el
- The majority of the configuration
These are kept out of git’s version control:
private.el
- The file is loaded after init.
Keybinding ideas:
This section might be out-dated because I am constantly tweaking my configurations.
There are some cases where I prefer emacs style keybindings.
Key | Binding | Original |
---|---|---|
C-. | embark-act | |
C-; | iedit-mode | |
C-\ | undo-only | |
C-M-d | down-list | |
C-M-r | raise-sexp | isearch-backward-regexp |
C-M-w | backward-kill-sexp | append-next-kill |
C-a | move-beginning-of-line+ | move-beginning-of-line |
C-w | backward-kill-word-or-region | backward-kill-word |
C-z | nil | suspend-emacs |
M-: | pp-eval-expression | |
M-j | avy-goto-char-timer | |
M-i | delete-other-windows | |
M-o | other-window | |
M-n | embark-next-symbol | |
M-p | embark-previous-symbol | |
M-s n | embark-next-symbol | |
M-s p | embark-previous-symbol | |
M-q | fill-or-unfill-paragraph | |
M-z | zap-up-to-char | |
M-Z | zap-to-char | |
M-SPC | cycle-spacing |
Key | Binding | Original |
---|---|---|
C-c d | find-config | |
C-c r | rg | |
C-c l | org-store-link | |
C-c a | org-agenda | |
C-c b | org-switchb | |
C-c c | org-capture | |
C-c C-d | helpful-at-point | |
C-c C-f | completion-at-point-filename | |
C-c n f | org-roam-node-find | |
C-c n i | org-roam-node-insert | |
C-c n c | org-roam-capture | |
C-c t t | load-one-theme | |
C-c t w | whitespace-mode | |
C-c t m | toggle-frame-maximized | |
C-c t M | toggle-frame-fullscreen | |
C-c t $ | toggle-truncate-lines |
Key | Binding | Original |
---|---|---|
C-x k | kill this buffer | kill-buffer |
C-x C-b | ibuffer | list-buffers |
C-x C-e | pp-eval-last-sexp | eval-last-sexp |
C-x C-j | dired-jump | |
C-x C-r | recentf-open-files+ | find-file-read-only |
Key | Binding | Original |
---|---|---|
C-h B | embark-bindings | |
C-h C | helpful-command | |
C-h F | describe-face | |
C-h f | helpful-callable | describe-function |
C-h v | helpful-variable | describe-variable |
C-h k | helpful-key | describe-key |
C-h o | helpful-symbol | describe-symbol |
C-h L | find-library | |
C-h p | describe-package | finder-by-keyword |
C-h P | finder-by-keyword | describe-package |
Not anymore!
This section used to be my keybindings bound with the super modifier key (usually the command key ⌘). Since I started using ArchLinu on my personal laptop (a ThinkPad T460S), I’ve grown to be less dependent on those keybindings. Lately I decided to use the command keys as the meta keys on my mac as well. This forced me to swap/remove some of the OS default keybindings. However, the benefit of having the meta key in a more ergonomics position outweighs the trouble. I spent most of my time in Emacs anyways.
To rebind/disable some Mac OS default keybindings:
- Disable Shift Cmd Q for logout
- How do I disable the Command-Control-D word definition keyboard shortcut in OS X Lion?
Not anymore!
As a refugee from Vim, I started off from Spacemacs, Doom, evil-mode
, and then
modalka
. As I got closer to vanilla Emacs, the less I want to deal with all
the hassles of coming in and out of the modes. When I switched to modalka
from evil-mode
for its simplicity, I found myself not really using the
modalka-mode
at all. I am as efficient as (if not more efficient than) I was
using modal editing. So i think it’s time for me to graduate from the modal
editing in general and embrace the Emacs key sequences.