summaryrefslogtreecommitdiff
path: root/.emacs.d/lisp/evil-setup.el
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-03-28 14:52:43 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-03-28 14:52:43 -0400
commitb31f90af5ac142fe35cf40d1c1458b20170a7286 (patch)
treeb9e6a1c86a0597b51b8b974dd025eecf1ea62dba /.emacs.d/lisp/evil-setup.el
parent3e2f998ace2f1b4ff8e47a17c21069b80413a6e4 (diff)
refactor: Split Emacs config into multiple files
Split Emacs config into multiple files for a more readable setup.
Diffstat (limited to '.emacs.d/lisp/evil-setup.el')
-rw-r--r--.emacs.d/lisp/evil-setup.el41
1 files changed, 41 insertions, 0 deletions
diff --git a/.emacs.d/lisp/evil-setup.el b/.emacs.d/lisp/evil-setup.el
new file mode 100644
index 0000000..cad03c9
--- /dev/null
+++ b/.emacs.d/lisp/evil-setup.el
@@ -0,0 +1,41 @@
+;; Download Evil
+(unless (package-installed-p 'evil)
+ (package-install 'evil))
+
+(unless (package-installed-p 'evil-collection)
+ (package-install 'evil-collection))
+
+(setq evil-want-keybinding nil)
+
+;; Enable Evil
+(use-package evil
+ :init ;; tweak evil's configuration before loading it
+ (setq evil-want-C-u-scroll t
+ evil-want-keybinding nil
+ evil-vsplit-window-right t
+ evil-split-window-below t)
+ (evil-mode))
+
+(use-package evil-collection
+ :after evil
+ :ensure t
+ :config
+ (evil-collection-init))
+
+(evil-set-leader 'normal (kbd "SPC"))
+(define-key evil-normal-state-map (kbd "<leader>w") 'save-buffer)
+(define-key evil-normal-state-map (kbd "<leader>%") 'split-window-right)
+(define-key evil-normal-state-map (kbd "<leader>\"") 'split-window-below)
+(cond ((not (eq system-type 'windows-nt))
+ (define-key evil-normal-state-map (kbd "<leader>t") 'vterm))
+ (t (define-key evil-normal-state-map (kbd "<leader>t") 'ansi-term)))
+(define-key evil-normal-state-map (kbd "<leader>ff") 'find-file)
+(define-key evil-normal-state-map (kbd "<leader>pv") 'dired)
+(define-key evil-normal-state-map (kbd "<leader>c") 'shell-command)
+(define-key evil-normal-state-map (kbd "C-l") 'windmove-right)
+(define-key evil-normal-state-map (kbd "C-h") 'windmove-left)
+(define-key evil-normal-state-map (kbd "C-j") 'windmove-down)
+(define-key evil-normal-state-map (kbd "C-k") 'windmove-up)
+
+(provide 'evil-setup)
+