aboutsummaryrefslogtreecommitdiff
path: root/.config/emacs/evil.el
diff options
context:
space:
mode:
authorJack Jamison <jackqjamison@gmail.com>2026-07-05 01:19:30 -0400
committerJack Jamison <jackqjamison@gmail.com>2026-07-05 01:19:30 -0400
commitbdf9a71ab7baa2b1de9abcfd5df1a9107a55d141 (patch)
treec4524e6c41aa5107211103401dabfaefc81aa882 /.config/emacs/evil.el
parentfe3984f541bd32bdfa418afb305b614176b55ca0 (diff)
add a bunch of emacs packages HELP
Diffstat (limited to '.config/emacs/evil.el')
-rw-r--r--.config/emacs/evil.el42
1 files changed, 42 insertions, 0 deletions
diff --git a/.config/emacs/evil.el b/.config/emacs/evil.el
new file mode 100644
index 0000000..3841565
--- /dev/null
+++ b/.config/emacs/evil.el
@@ -0,0 +1,42 @@
+(use-package evil
+ :demand t
+ :ensure nil
+ :init
+ (setq evil-want-keybinding nil)
+ :config
+ (evil-mode)
+ :custom
+ (evil-want-C-u-scroll t)
+ (evil-undo-system 'undo-redo)
+ (evil-move-beyond-eol nil)
+ :bind
+ ( :map evil-insert-state-map
+ ("C-d" . evil-delete-char))
+ ( :map evil-motion-state-map
+ ("C-e" . nil)))
+
+(use-package evil-collection
+ :after evil
+ :ensure nil
+ :diminish evil-collection-unimpaired-mode
+ :config
+ (evil-collection-init))
+
+(use-package evil-paste-indent
+ :after evil
+ :ensure nil
+ :diminish
+ :config (global-evil-paste-indent-mode t))
+
+;; improved C-g dwim
+(defun my-keyboard-quit ()
+ "Smart C-g: exits evil mode, closes minibuffer, or behaves normally."
+ (interactive)
+ (if (and (bound-and-true-p evil-local-mode) (not (evil-normal-state-p)))
+ (evil-force-normal-state)
+ (if (active-minibuffer-window)
+ (if (minibufferp)
+ (minibuffer-keyboard-quit)
+ (abort-recursive-edit))
+ (keyboard-quit))))
+(global-set-key (kbd "C-g") #'my-keyboard-quit)