diff options
-rw-r--r-- | init.el | 1 | ||||
-rw-r--r-- | lisp/km-org.el | 13 |
2 files changed, 14 insertions, 0 deletions
@@ -301,6 +301,7 @@ (define-key org-mode-map [remap org-tree-to-indirect-buffer] #'km/org-tree-to-indirect-buffer) (define-key org-mode-map [remap org-refile] #'km/org-refile-dwim) + (define-key org-mode-map [remap org-goto] #'km/org-goto) (add-to-list 'org-speed-commands-user '("o" . km/org-open-at-point-stay)) (add-to-list 'org-speed-commands-user '("w" . km/org-refile-dwim)) diff --git a/lisp/km-org.el b/lisp/km-org.el index 7f4d5da..a778502 100644 --- a/lisp/km-org.el +++ b/lisp/km-org.el @@ -300,6 +300,19 @@ called through the speed command interface." (save-excursion (call-interactively #'org-open-at-point))) +(defun km/org-goto () + "Like `org-goto', but act on widened buffer. +If point ends up outside the previously narrowed region, leave +the buffer widened." + (interactive) + (pcase-let ((`(,beg . ,end) (and (buffer-narrowed-p) + (cons (point-min) (point-max))))) + (widen) + (unwind-protect + (call-interactively #'org-goto) + (when (and beg (<= beg (point) end)) + (narrow-to-region beg end))))) + ;;; Agenda |