diff --git a/core/autoload/editor.el b/core/autoload/editor.el index 7459c921d..5c896b702 100644 --- a/core/autoload/editor.el +++ b/core/autoload/editor.el @@ -238,8 +238,9 @@ clone the buffer and hard-narrow the selection. If mark isn't active, then widen the buffer (if narrowed). Inspired from http://demonastery.org/2013/04/emacs-evil-narrow-region/" - (interactive "r") - (cond ((region-active-p) + (interactive "rP") + (cond ((or (region-active-p) + (and beg end)) (deactivate-mark) (when clone-p (let ((old-buf (current-buffer))) diff --git a/modules/config/default/+bindings.el b/modules/config/default/+bindings.el index 5c1ee1f85..3cc29bdd8 100644 --- a/modules/config/default/+bindings.el +++ b/modules/config/default/+bindings.el @@ -97,6 +97,8 @@ :n "gr" #'+eval:region :n "gR" #'+eval/buffer :v "gR" #'+eval:replace-region + :nv "g-" #'+evil:narrow-buffer + :n "g=" #'widen :v "@" #'+evil:apply-macro :n "g@" #'+evil:apply-macro ;; repeat in visual mode (FIXME buggy) diff --git a/modules/feature/evil/autoload/evil.el b/modules/feature/evil/autoload/evil.el index 8893d5a94..39aef130c 100644 --- a/modules/feature/evil/autoload/evil.el +++ b/modules/feature/evil/autoload/evil.el @@ -149,7 +149,7 @@ integration." (doom/retab beg end)) ;;;###autoload (autoload '+evil:narrow-buffer "feature/evil/autoload/evil" nil t) -(evil-define-command +evil:narrow-buffer (beg end &optional bang) +(evil-define-operator +evil:narrow-buffer (beg end &optional bang) "Wrapper around `doom/clone-and-narrow-buffer'." :move-point nil (interactive "")