summaryrefslogtreecommitdiff
path: root/emacs/site-lisp/evil-config.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/site-lisp/evil-config.el')
-rw-r--r--emacs/site-lisp/evil-config.el77
1 files changed, 77 insertions, 0 deletions
diff --git a/emacs/site-lisp/evil-config.el b/emacs/site-lisp/evil-config.el
new file mode 100644
index 0000000..b019146
--- /dev/null
+++ b/emacs/site-lisp/evil-config.el
@@ -0,0 +1,77 @@
+;;; evil config
+(provide 'evil-config)
+
+(use-package evil
+ :custom
+ (evil-want-keybinding nil)
+ (evil-want-integration t)
+ :init
+ (evil-mode 1))
+(use-package evil-collection
+ :init
+ (evil-collection-init))
+(use-package evil-easymotion
+ :init
+ (evilem-default-keybindings "SPC"))
+(use-package evil-surround
+ :config
+ (global-evil-surround-mode 1))
+(use-package evil-snipe
+ :config
+ (evil-snipe-mode 1)
+ (evil-snipe-override-mode 1)
+ (evil-define-key 'visual evil-snipe-local-mode-map "z" 'evil-snipe-s)
+ (evil-define-key 'visual evil-snipe-local-mode-map "Z" 'evil-snipe-S)
+ :custom
+ (evil-snipe-scope 'buffer))
+(define-key evil-insert-state-map (kbd "C-d") 'delete-char)
+(define-key evil-insert-state-map (kbd "C-e") 'move-end-of-line)
+(define-key evil-insert-state-map (kbd "C-a") 'move-beginning-of-line)
+(define-key evil-normal-state-map (kbd "M-.") 'xref-find-definitions)
+(define-key evil-normal-state-map (kbd "M-Z") 'suspend-frame)
+
+(define-key evil-motion-state-map (kbd "TAB") 'indent-for-tab-command)
+(evil-set-initial-state 'vterm-mode 'emacs)
+
+;;; sasha bindings
+(defun evil-window-split-and-switch ()
+ "Split the window vertically and switch to the new buffer."
+ (interactive)
+ (evil-window-split)
+ (other-window 1))
+
+(defun evil-window-vsplit-and-switch ()
+ "Split the window horizontally and switch to the new buffer."
+ (interactive)
+ (evil-window-vsplit)
+ (other-window 1))
+
+(define-key evil-insert-state-map (kbd "C-t") 'transpose-chars)
+(define-key evil-normal-state-map (kbd "C-t") 'transpose-chars)
+(evil-define-key 'normal global-map (kbd "SPC i") 'imenu)
+(evil-define-key 'normal global-map (kbd "SPC o") 'other-window)
+(evil-define-key 'normal global-map (kbd "SPC q") 'kill-current-buffer)
+(evil-define-key 'normal global-map (kbd "SPC RET") 'vterm)
+(evil-define-key 'normal global-map (kbd "SPC v") 'vterm)
+(evil-define-key 'normal global-map (kbd "SPC !") 'abort-recursive-edit)
+(evil-define-key 'normal global-map (kbd "SPC f f") 'find-file)
+
+(evil-define-key 'normal global-map (kbd "SPC SPC SPC j") 'evil-window-split-and-switch)
+(evil-define-key 'normal global-map (kbd "SPC SPC SPC k") 'evil-window-split-and-switch)
+(evil-define-key 'normal global-map (kbd "SPC SPC SPC h") 'evil-window-vsplit-and-switch)
+(evil-define-key 'normal global-map (kbd "SPC SPC SPC l") 'evil-window-vsplit-and-switch)
+(evil-define-key 'normal global-map (kbd "SPC SPC h") 'evil-window-left)
+(evil-define-key 'normal global-map (kbd "SPC SPC j") 'evil-window-down)
+(evil-define-key 'normal global-map (kbd "SPC SPC k") 'evil-window-up)
+(evil-define-key 'normal global-map (kbd "SPC SPC l") 'evil-window-right)
+(evil-define-key 'normal global-map (kbd "M-h") 'evil-window-left)
+(evil-define-key 'normal global-map (kbd "M-j") 'evil-window-down)
+(evil-define-key 'normal global-map (kbd "M-k") 'evil-window-up)
+(evil-define-key 'normal global-map (kbd "M-l") 'evil-window-right)
+(evil-define-key 'normal global-map (kbd "SPC SPC w") 'delete-window)
+(evil-define-key 'normal global-map (kbd "SPC SPC q") 'delete-window)
+(evil-define-key 'normal global-map (kbd "SPC SPC b") 'balance-windows)
+(evil-define-key 'normal global-map (kbd "SPC s s") 'save-buffer)
+(evil-define-key 'normal global-map (kbd "SPC s f") 'counsel-find-file)
+(evil-define-key 'normal global-map (kbd "SPC s r") 'counsel-rg)
+(evil-define-key 'normal global-map (kbd "SPC ;") 'frog-jump-buffer)