Skip to content

Instantly share code, notes, and snippets.

@lockie
Last active February 24, 2020 12:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lockie/6d74aa5ca2c84d68dcb2717c225118ae to your computer and use it in GitHub Desktop.
Save lockie/6d74aa5ca2c84d68dcb2717c225118ae to your computer and use it in GitHub Desktop.
Spacemacs config to eradicate bad editing habits
;; 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