Files
dotfiles/Doom/.config/doom/modules/private/bindings
dx 357afbf0e0 +a ton of bindings
Copied from doom that I liked
2020-07-18 00:56:19 +01:00
..
2020-07-18 00:56:19 +01:00

private/bindings Literate configuration

Introduction

This is the main document for this module (private/bindings). To compile, simply execute the source code block below

(org-babel-tangle-file "README.org" "config.el")

Initial

Set the localleader to "SPC ,"

;;; private/bindings/config.el -*- lexical-binding: t; -*-
(setq doom-leader-key "SPC")
(setq doom-localleader-key "SPC ,")

Leader

Bindings for the leader map

Single binds

These are immediate bindings to the leader map that instantly launch functions when pressed. This binding space is reserved for stuff I use quite often.

(map!
 :leader
 "SPC" #'execute-extended-command
 "!"   #'async-shell-command
 "T"   #'eshell
 "C"   #'calc
 "-"   #'dired-jump
 "_"   #'dired-jump-other-window
 ";"   #'eval-expression
 "h"   #'help-command
 "w"   #'ace-window)

Files

(map!
 :leader
 :prefix "f"
 "r"  #'recentf-open-files
 (:after projectile
  "p"  #'(lambda () (interactive) (doom-project-find-file "~/Dotfiles")))
 "f"  #'find-file
 "s"  #'save-buffer
 "d"  #'dired)

Buffers

(map!
 :leader
 :prefix "b"
 "n" #'next-buffer
 "p" #'previous-buffer
 "d" #'kill-current-buffer
 "b" #'switch-to-buffer
 "i" #'ibuffer)

Search

(map!
 :leader
 :prefix "s"
 "i"  #'imenu
 "o"  #'+lookup/online
 (:after counsel
  "s" #'swiper
  "r" #'counsel-rg)
 (:after counsel-etags
  "t" #'counsel-etags-find-tag))

Projectile

(map!
 :leader
 :after projectile
 ">"  #'projectile-switch-to-buffer
 (:prefix ("p" . "project")
  "p" #'projectile-switch-project
  "g" #'projectile-regenerate-tags
  "f" #'projectile-find-file
  "i" #'projectile-invalidate-cache))

Code

(map!
 :leader
 :prefix ("c" . "code") ; Code
 :desc "Compile"            "c"       #'compile
 :desc "Compile via make"   "m"       #'+make/run
 :desc "Flycheck"           "v"       #'flycheck-list-errors
 :desc "Undo tree"          "u"       #'undo-tree-visualize
 (:after lsp
  :desc "Format code lsp"   "f"       #'+default/lsp-format-region-or-buffer
  :desc "Execute action"    "a"       #'lsp-execute-code-action))

Magit and VC

(map!
 :leader
 :after magit
 :prefix "g"
 "g" #'magit-status
 "c" #'magit-clone
 "f" #'magit-fetch
 "p" #'magit-pull)

Notes

(map!
 :leader
 :prefix ("n" . "notes")
 :desc  "Open notes in dired" "-"  #'(lambda () (interactive) (dired org-directory))
 :desc  "Open quicknotes"     "q"  #'(lambda () (interactive) (find-file (format "%s/qnotes.org" org-directory))))

Frames

(map!
 :leader
 :prefix "F"
 "d" #'delete-frame)

Toggle

Bindings that usually toggle stuff based bindings

(map!
 :leader
 :prefix "t"
 "s" #'flyspell-mode
 "f" #'flycheck-mode
 "t" #'toggle-truncate-lines
 "l" #'doom/toggle-line-numbers
 "F" #'toggle-frame-fullscreen)

Quit

Quit Emacs or restart it

(map!
 :leader
 :prefix "q"
 "q" #'save-buffers-kill-terminal
 "r" #'doom/restart)

Ivy

Bindings for ivy based functions

(map!
 :after ivy
 :map ivy-minibuffer-map
 "C-j" #'ivy-next-line-or-history
 "C-k" #'ivy-previous-line-or-history)

Company

(map!
 :i "C-SPC" #'company-complete-common
 :map company-active-map
 "C-j"   #'company-select-next-or-abort
 "C-k"   #'company-select-previous-or-abort)

Multi cursors

Setup bindings for multi cursors. As it's a motion based system, use the "gz" namespace.

(map!
 :after evil
 :m "gzm" #'evil-mc-resume-cursors
 :m "gzp" #'evil-mc-pause-cursors
 :m "gzd" #'evil-mc-make-all-cursors
 :m "gzj" #'evil-mc-make-cursor-move-next-line
 :m "gzk" #'evil-mc-make-cursor-move-prev-line
 :m "gzz" #'evil-mc-make-cursor-here)

Remaps

Remap certain functions to more useful counterparts

(after! org
  (define-key!
    [remap org-goto] #'imenu))

Misc

Misc bindings that don't fit to any other category.

(map!
 "C-x C-z" #'text-scale-adjust
 (:after evil
  "TAB" #'evil-jump-item)
 "M-c" #'count-words-region
 "M-s" #'occur)