Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dawranliou/emacs.d
My ever-evolving Emacs config at work. Targeting emacs master build on OSX.
https://github.com/dawranliou/emacs.d
emacs emacs-configuration emacs-lisp emacs-theme
Last synced: 14 days ago
JSON representation
My ever-evolving Emacs config at work. Targeting emacs master build on OSX.
- Host: GitHub
- URL: https://github.com/dawranliou/emacs.d
- Owner: dawranliou
- Created: 2020-04-04T04:34:33.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-13T22:46:54.000Z (2 months ago)
- Last Synced: 2024-09-14T13:16:33.226Z (2 months ago)
- Topics: emacs, emacs-configuration, emacs-lisp, emacs-theme
- Language: Emacs Lisp
- Homepage:
- Size: 21.5 MB
- Stars: 17
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
#+TITLE:Daw-Ran Liou's Emacs Configuration
#+STARTUP: overviewThis 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 configurationThese 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_bindingsThis 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.