diff --git a/modules/editor/evil/autoload/evil.el b/modules/editor/evil/autoload/evil.el index b923ad1b2..817a86448 100644 --- a/modules/editor/evil/autoload/evil.el +++ b/modules/editor/evil/autoload/evil.el @@ -92,6 +92,22 @@ the only window, use evil-window-move-* (e.g. `evil-window-move-far-left')." "Swap windows downward." (interactive) (+evil--window-swap 'down)) +;;;###autoload +(defun +evil-window-split-and-follow () + "Split current window horizontally, then focus new window. +If `evil-split-window-right' is non-nil, the new window isn't focused." + (interactive) + (let ((evil-vsplit-window-right (notevil-vsplit-window-right ))) + (call-interactively #'evil-window-split))) + +;;;###autoload +(defun +evil-window-vsplit-and-follow () + "Split current window vertically, then focus new window. +If `evil-split-window-below' is non-nil, the new window isn't focused." + (interactive) + (let ((evil-split-window-below (not evil-split-window-below))) + (call-interactively #'evil-window-vsplit))) + ;;;###autoload (autoload '+evil:apply-macro "editor/evil/autoload/evil" nil t) (evil-define-operator +evil:apply-macro (beg end) "Apply macro to each line." diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index a822052c9..9479adb7c 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -530,6 +530,9 @@ directives. By default, this only recognizes C directives.") "C-k" #'evil-window-up "C-l" #'evil-window-right "C-w" #'other-window + ;; Extra split commands + "S" #'+evil-window-split-and-follow + "V" #'+evil-window-vsplit-and-follow ;; Swapping windows "H" #'+evil/window-move-left "J" #'+evil/window-move-down