emacs.d
emacs.d copied to clipboard
My ever-evolving Emacs config at work. Targeting emacs master build on OSX.
#+TITLE:Daw-Ran Liou's Emacs Configuration #+STARTUP: overview
This is an ongoing evolution of my original Emacs configuration files, inspired by a bunch of resources I’ve found online.
- Installation
#+begin_src shell git clone [email protected]:dawranliou/emacs.d.git #+end_src
- Startup performance
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.
- Configuration structure
- =early-init.el= - See [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Early-Init-File.html][The Early Init File]]
- =init.el= - The majority of the configuration
These are kept out of git's version control:
- =private.el= - The file is loaded after init.
- Keybindings Keybinding ideas:
- http://mbork.pl/2019-03-18_Free_Emacs_key_bindings
This section might be out-dated because I am constantly tweaking my configurations.
** Emacs-style keybindings
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 | |
*** =C-c= map
| 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 | |
*** =C-x= map
| 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 |
*** Help map =C-h=
| 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 |
** Mac (OSX) ergonomics keybindings
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:
- [[https://apple.stackexchange.com/questions/210517/disable-shift-cmd-q-for-logout][Disable Shift Cmd Q for logout]]
- [[https://apple.stackexchange.com/questions/22785/how-do-i-disable-the-command-control-d-word-definition-keyboard-shortcut-in-os-x][How do I disable the Command-Control-D word definition keyboard shortcut in OS X Lion?]]
** Evil/modal/vim-style keybindings
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.