Last active
February 24, 2020 12:10
-
-
Save lockie/6d74aa5ca2c84d68dcb2717c225118ae to your computer and use it in GitHub Desktop.
Spacemacs config to eradicate bad editing habits
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; put this to dotspacemacs/user-config | |
(defun left-key-stub () | |
(interactive) | |
(message "Use Vim keys: <h> for Left, <b> for previous word")) | |
(define-key evil-normal-state-map (kbd "<left>") 'left-key-stub) | |
(define-key evil-insert-state-map (kbd "<left>") 'left-key-stub) | |
(define-key evil-visual-state-map (kbd "<left>") 'left-key-stub) | |
(defun right-key-stub () | |
(interactive) | |
(message "Use Vim keys: <l> for Right, <w> for next word")) | |
(define-key evil-normal-state-map (kbd "<right>") 'right-key-stub) | |
(define-key evil-insert-state-map (kbd "<right>") 'right-key-stub) | |
(define-key evil-visual-state-map (kbd "<right>") 'right-key-stub) | |
(defun up-key-stub () | |
(interactive) | |
(message "Use Vim keys: <k> for Up")) | |
(define-key evil-normal-state-map (kbd "<up>") 'up-key-stub) | |
(define-key evil-insert-state-map (kbd "<up>") 'up-key-stub) | |
(define-key evil-visual-state-map (kbd "<up>") 'up-key-stub) | |
(defun down-key-stub () | |
(interactive) | |
(message "Use Vim keys: <j> for Down")) | |
(define-key evil-normal-state-map (kbd "<down>") 'down-key-stub) | |
(define-key evil-insert-state-map (kbd "<down>") 'down-key-stub) | |
(define-key evil-visual-state-map (kbd "<down>") 'down-key-stub) | |
(unbind-key "<C-left>") | |
(unbind-key "<C-right>") | |
(unbind-key "<C-up>") | |
(unbind-key "<C-down>") | |
(unbind-key "<M-left>") | |
(unbind-key "<M-right>") | |
(unbind-key "<M-up>") | |
(unbind-key "<M-down>") | |
(defun home-key-stub () | |
(interactive) | |
(message "Use Vim keys: <0> for Home")) | |
(define-key evil-normal-state-map (kbd "<home>") 'home-key-stub) | |
(define-key evil-insert-state-map (kbd "<home>") 'home-key-stub) | |
(define-key evil-visual-state-map (kbd "<home>") 'home-key-stub) | |
(defun end-key-stub () | |
(interactive) | |
(message "Use Vim keys: <$> for End, <A> to insert at the end")) | |
(define-key evil-normal-state-map (kbd "<end>") 'end-key-stub) | |
(define-key evil-insert-state-map (kbd "<end>") 'end-key-stub) | |
(define-key evil-visual-state-map (kbd "<end>") 'end-key-stub) | |
(defun ctrl-home-key-stub () | |
(interactive) | |
(message "Use Vim keys: <gg> for beginning of document")) | |
(define-key evil-normal-state-map (kbd "<C-home>") 'ctrl-home-key-stub) | |
(define-key evil-insert-state-map (kbd "<C-home>") 'ctrl-home-key-stub) | |
(define-key evil-visual-state-map (kbd "<C-home>") 'ctrl-home-key-stub) | |
(defun ctrl-end-key-stub () | |
(interactive) | |
(message "Use Vim keys: <G> for end of document")) | |
(define-key evil-normal-state-map (kbd "<C-end>") 'ctrl-end-key-stub) | |
(define-key evil-insert-state-map (kbd "<C-end>") 'ctrl-end-key-stub) | |
(define-key evil-visual-state-map (kbd "<C-end>") 'ctrl-end-key-stub) | |
(defun pgup-key-stub () | |
(interactive) | |
(message "Use Vim keys: <C-b> for page up, <C-u> for half page up")) | |
(define-key evil-normal-state-map (kbd "<prior>") 'pgup-key-stub) | |
(define-key evil-insert-state-map (kbd "<prior>") 'pgup-key-stub) | |
(define-key evil-visual-state-map (kbd "<prior>") 'pgup-key-stub) | |
(defun pgdn-key-stub () | |
(interactive) | |
(message "Use Vim keys: <C-f> for page down, <C-d> for half page down")) | |
(define-key evil-normal-state-map (kbd "<next>") 'pgdn-key-stub) | |
(define-key evil-insert-state-map (kbd "<next>") 'pgdn-key-stub) | |
(define-key evil-visual-state-map (kbd "<next>") 'pgdn-key-stub) | |
(defun del-key-stub () | |
(interactive) | |
(message "Use Vim keys: <x> for delete char, <d> for generic delete")) | |
(define-key evil-normal-state-map (kbd "<delete>") 'del-key-stub) | |
(define-key evil-insert-state-map (kbd "<delete>") 'del-key-stub) | |
(define-key evil-visual-state-map (kbd "<delete>") 'del-key-stub) | |
(defun ins-key-stub () | |
(interactive) | |
(message "Use Vim keys: <i>/<a> for insert, <R> for overwrite")) | |
(define-key evil-normal-state-map (kbd "<insert>") 'ins-key-stub) | |
(define-key evil-insert-state-map (kbd "<insert>") 'ins-key-stub) | |
(define-key evil-visual-state-map (kbd "<insert>") 'ins-key-stub) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment