Emacs Keybindings from Stratch

Aug 18, 2020

I was tired of thinking that I could type wrong keys in Emacs and never known about that. So I decided to unbind all keys and bind just the keys that I know and use every day.

The bound keys in mt-keybindings.el almost cover all keys found in emacs tutorial (C-h t). Some notes: I don’t use backspace but I use the Unix keystroke C-h, also I don’t use Home, End, PgUp, PgDn, …, and arrow keys.

mt-keybindings.el

;; copy insert commands. Insert commands produce keyboard symbols to insert in the buffer.
;; this is minimum on every text editor
(setq mt-global-map (make-keymap))
(substitute-key-definition 'self-insert-command 'self-insert-command mt-global-map global-map)
(use-global-map mt-global-map)
;; need to define Enter key
(define-key mt-global-map (kbd "RET") 'newline)
;; also TAB
(define-key mt-global-map (kbd "TAB") 'indent-for-tab-command)
;; define Unix style for backspace
(define-key mt-global-map "\C-h" 'delete-backward-char)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; position keys
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-key mt-global-map "\C-n" 'next-line)
(define-key mt-global-map "\C-p" 'previous-line)
(define-key mt-global-map "\C-f" 'forward-char)
(define-key mt-global-map "\C-b" 'backward-char)

(define-key mt-global-map "\M-f" 'forward-word)
(define-key mt-global-map "\M-b" 'backward-word)

(define-key mt-global-map "\C-a" 'move-beginning-of-line)
(define-key mt-global-map "\C-e" 'move-end-of-line)
(define-key mt-global-map "\M-a" 'backward-sentence)
(define-key mt-global-map "\M-e" 'forward-sentence)

(define-key mt-global-map "\C-v" 'scroll-up-command)
(define-key mt-global-map "\M-v" 'scroll-down-command)

(define-key mt-global-map "\M-<" 'beginning-of-buffer)
(define-key mt-global-map "\M->" 'end-of-buffer)

(define-key mt-global-map "\C-l" 'recenter-top-bottom)

(define-key mt-global-map "\M-gg" 'goto-line)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; fundamental operations
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-key mt-global-map "\M-d" 'kill-word)
(define-key mt-global-map "\C-d" 'delete-char)

(define-key mt-global-map "\C-k" 'kill-line)
;; M-w for now not enabled

(define-key mt-global-map "\C-u" 'universal-argument)

(define-key mt-global-map "\C-s" 'isearch-forward)
(define-key mt-global-map "\C-r" 'isearch-backward)

(define-key mt-global-map "\C-x\C-f" 'find-file)
(define-key mt-global-map "\C-x\C-s" 'save-buffer)
(define-key mt-global-map "\C-x\C-c" 'save-buffers-kill-terminal)

(define-key mt-global-map "\C-g" 'keyboard-quit)

;; copy/paste/sel/undo
(define-key mt-global-map (kbd "C-SPC") 'set-mark-command)
(define-key mt-global-map "\M-w" 'kill-ring-save)
(define-key mt-global-map "\C-w" 'kill-region)
(define-key mt-global-map "\C-y" 'yank)
;; M-y for now not enabled
(define-key mt-global-map (kbd "C-/") 'undo)
(define-key mt-global-map "\C-_" 'undo)
(define-key mt-global-map "\C-xu" 'undo)

;; buffers
(define-key mt-global-map "\C-x\C-b" 'list-buffers)
(define-key mt-global-map "\C-xb" 'switch-to-buffer)
(define-key mt-global-map "\C-xs" 'save-some-buffers)
(define-key mt-global-map "\C-xk" 'kill-buffer)
(define-key mt-global-map "\C-x1" 'delete-other-windows)
(define-key mt-global-map "\C-x2" 'split-window-below)
(define-key mt-global-map "\C-x3" 'split-window-right)
(define-key mt-global-map "\C-\M-v" 'scroll-other-window)
(define-key mt-global-map "\C-xo" 'other-window)

(define-key mt-global-map "\C-xf" 'set-fill-column)
(define-key mt-global-map "\M-q" 'fill-paragraph)

(define-key mt-global-map "\M-x" 'execute-extended-command)
(define-key mt-global-map "\C-x\C-e" 'eval-last-sexp)

(provide 'mt-keybindings)
emacsconfig

Back to talau's home