97 lines
3.2 KiB
EmacsLisp
97 lines
3.2 KiB
EmacsLisp
(add-to-list 'load-path "~/.emacs.d/elisp-git/evil/")
|
|
(add-to-list 'load-path "~/.emacs.d/elisp-git/evil-snipe/")
|
|
|
|
(with-eval-after-load 'evil
|
|
;;(evil-mode 1)
|
|
;; Want something to switch between evil and god-mode, instead of this.
|
|
;; They say there's a plugin for it...
|
|
(global-set-key (kbd "C-x e") 'evil-mode)
|
|
;; (define-key evil-normal-state-map (kbd "<tab>") 'forward-button)
|
|
(cp-define-many-keys
|
|
evil-normal-state-map
|
|
'(("zR" 'yafolding-show-all)
|
|
("zM" 'yafolding-hide-all)
|
|
("zo" 'yafolding-show-element)
|
|
("zc" 'yafolding-hide-element)))
|
|
;;(global-set-key (kbd "g C-g") 'count-words-region)
|
|
|
|
;; The story so far - in evil-normal-state-map, I set 'i' to
|
|
;; evil-previous-visual-line, 'k' to evil-next-visual-line, 'j' to
|
|
;; evil-backward-char. Note that I forgot to set 'h' to insert at
|
|
;; first...but that's not all - later I realized this didn't affect
|
|
;; Visual mode :p 4 more lines for that. Next...d/c didn't work with
|
|
;; ijkl. 4 more lines for evil-operator-state-map. After that - you
|
|
;; usually want visual-line up/down movement, but _not_ when you hit
|
|
;; d-j/k (or d-i/k)! So, in evil-operator-state-map, i and k are now
|
|
;; vanilla evil-previous/next-line. Set gi/gk to
|
|
;; evil-previous/next-line in normal and visual states, and to
|
|
;; evil-previous/next-visual-line in operator state - 2 new lines to
|
|
;; each group of 4.
|
|
|
|
(cp-define-many-keys
|
|
evil-normal-state-map
|
|
'(("gi" evil-previous-visual-line)
|
|
("gk" evil-next-visual-line)
|
|
( "i" evil-previous-line)
|
|
( "k" evil-next-line)
|
|
( "j" evil-backward-char)
|
|
( "h" evil-insert)))
|
|
|
|
(cp-define-many-keys
|
|
evil-visual-state-map
|
|
'(("gi" evil-previous-visual-line)
|
|
("gk" evil-next-visual-line)
|
|
("i" evil-previous-line)
|
|
("k" evil-next-line)
|
|
("j" evil-backward-char)
|
|
("h" evil-insert)))
|
|
|
|
(cp-define-many-keys
|
|
evil-operator-state-map
|
|
'(("gi" evil-previous-visual-line)
|
|
("gk" evil-next-visual-line)
|
|
("i" evil-previous-line)
|
|
("k" evil-next-line)
|
|
("j" evil-backward-char)
|
|
("h" evil-insert)
|
|
;; evil-inner-tag ?
|
|
("hW" evil-inner-WORD)
|
|
("hw" evil-inner-word)
|
|
("h\(" evil-inner-paren)
|
|
("h\)" evil-inner-paren)
|
|
("h\{" evil-inner-curly)
|
|
("h\}" evil-inner-curly)
|
|
("h<" evil-inner-angle)
|
|
("h>" evil-inner-angle)
|
|
|
|
("h\[" evil-inner-bracket)
|
|
("h\]" evil-inner-bracket)
|
|
("hs" evil-inner-sentence)
|
|
("hp" evil-inner-paragraph)
|
|
("h`" evil-inner-back-quote)
|
|
("h\"" evil-inner-double-quote)
|
|
("h'" evil-inner-single-quote)))
|
|
|
|
(cp-define-many-keys
|
|
evil-motion-state-map
|
|
'(("gi" evil-previous-visual-line)
|
|
("gk" evil-next-visual-line))))
|
|
|
|
;;;; set C-h to backspace when editing commands and searching
|
|
(defun kill-start-of-line ()
|
|
"Kill from point to start of line."
|
|
(interactive)
|
|
(kill-line 0))
|
|
(define-key evil-insert-state-map (kbd "C-u") 'kill-start-of-line))
|
|
|
|
;;;; evil-snipe
|
|
(with-eval-after-load 'evil-snipe
|
|
(setq evil-snipe-count-scope 'letters)
|
|
;; This doesn't take two chars by default, which combined with
|
|
;; unimplemented evil-snipe-count-scope 'vertical makes it nearly
|
|
;; useless as a replacement for fFtT;
|
|
(evil-snipe-replace-evil)
|
|
(global-evil-snipe-mode 1))
|
|
|
|
(evil-mode)
|