dawranliou / emacs.d

My ever-evolving Emacs config at work. Targeting emacs master build on OSX.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Daw-Ran Liou’s Emacs Configuration

This is an ongoing evolution of my original Emacs configuration files, inspired by a bunch of resources I’ve found online.

Installation

git clone git@github.com:dawranliou/emacs.d.git

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

These are kept out of git’s version control:

  • private.el - The file is loaded after init.

Keybindings

Keybinding ideas:

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.

KeyBindingOriginal
C-.embark-act
C-;iedit-mode
C-\undo-only
C-M-ddown-list
C-M-rraise-sexpisearch-backward-regexp
C-M-wbackward-kill-sexpappend-next-kill
C-amove-beginning-of-line+move-beginning-of-line
C-wbackward-kill-word-or-regionbackward-kill-word
C-znilsuspend-emacs
M-:pp-eval-expression
M-javy-goto-char-timer
M-idelete-other-windows
M-oother-window
M-nembark-next-symbol
M-pembark-previous-symbol
M-s nembark-next-symbol
M-s pembark-previous-symbol
M-qfill-or-unfill-paragraph
M-zzap-up-to-char
M-Zzap-to-char
M-SPCcycle-spacing

C-c map

KeyBindingOriginal
C-c dfind-config
C-c rrg
C-c lorg-store-link
C-c aorg-agenda
C-c borg-switchb
C-c corg-capture
C-c C-dhelpful-at-point
C-c C-fcompletion-at-point-filename
C-c n forg-roam-node-find
C-c n iorg-roam-node-insert
C-c n corg-roam-capture
C-c t tload-one-theme
C-c t wwhitespace-mode
C-c t mtoggle-frame-maximized
C-c t Mtoggle-frame-fullscreen
C-c t $toggle-truncate-lines

C-x map

KeyBindingOriginal
C-x kkill this bufferkill-buffer
C-x C-bibufferlist-buffers
C-x C-epp-eval-last-sexpeval-last-sexp
C-x C-jdired-jump
C-x C-rrecentf-open-files+find-file-read-only

Help map C-h

KeyBindingOriginal
C-h Bembark-bindings
C-h Chelpful-command
C-h Fdescribe-face
C-h fhelpful-callabledescribe-function
C-h vhelpful-variabledescribe-variable
C-h khelpful-keydescribe-key
C-h ohelpful-symboldescribe-symbol
C-h Lfind-library
C-h pdescribe-packagefinder-by-keyword
C-h Pfinder-by-keyworddescribe-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:

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.

About

My ever-evolving Emacs config at work. Targeting emacs master build on OSX.


Languages

Language:Emacs Lisp 90.0%Language:Common Lisp 9.7%Language:C++ 0.1%Language:Python 0.1%Language:C 0.1%Language:Shell 0.0%