Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save windless/d3856af65d14da64e4d3 to your computer and use it in GitHub Desktop.
Save windless/d3856af65d14da64e4d3 to your computer and use it in GitHub Desktop.
(defun viper-escape-if-next-char (c)
"Watches the next letter. If c, then switch to viper mode, otherwise insert a j and forward unpressed key to unread-command-events"
(self-insert-command 1)
(let ((next-key (read-event)))
(if (= c next-key)
(progn
(delete-backward-char 1)
(viper-mode))
(setq unread-command-events (list next-key)))))
(defun viper-escape-if-next-char-is-k (arg)
(interactive "p")
(if (= arg 1)
(viper-escape-if-next-char ?k)
(self-insert-command arg)))
(define-key viper-insert-basic-map (kbd "j") 'viper-escape-if-next-char-is-k)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment