Hello all, org-narrow-to-subtree is very nice, and I now have C-x n s hard-wired into my fingers, but it doesn't work when outline-regexp is too different from org-outline-regexp in Outline-but-non-Org mode buffers.
It looked pretty easy to fix, so here is my suggestion, below. It should be rather harmless since it only affects non-Org buffers (and might have the nice side effect of allowing other commands to run in those buffers -- but I haven't checked.) >From 70ccd90f98d07762d7ae228d67c387d674a69cee Mon Sep 17 00:00:00 2001 From: Nicolas Richard <theonewiththeevill...@yahoo.fr> Date: Tue, 22 Jul 2014 18:29:00 +0200 Subject: [PATCH] Make org-get-limited-outline-regexp usable outside of org. This allows org-narrow-to-subtree to function in Outline mode. * lisp/org-macs.el (org-get-limited-outline-regexp): Use outline-regexp instead of org-outline-regexp when not in Org mode. --- lisp/org-macs.el | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lisp/org-macs.el b/lisp/org-macs.el index 96265ec..78174df 100644 --- a/lisp/org-macs.el +++ b/lisp/org-macs.el @@ -352,11 +352,16 @@ point nowhere." (defun org-get-limited-outline-regexp () "Return outline-regexp with limited number of levels. The number of levels is controlled by `org-inlinetask-min-level'" - (if (or (not (derived-mode-p 'org-mode)) (not (featurep 'org-inlinetask))) - org-outline-regexp - (let* ((limit-level (1- org-inlinetask-min-level)) - (nstars (if org-odd-levels-only (1- (* limit-level 2)) limit-level))) - (format "\\*\\{1,%d\\} " nstars)))) + (cond ((not (derived-mode-p 'org-mode)) + outline-regexp) + ((not (featurep 'org-inlinetask)) + org-outline-regexp) + (t + (let* ((limit-level (1- org-inlinetask-min-level)) + (nstars (if org-odd-levels-only + (1- (* limit-level 2)) + limit-level))) + (format "\\*\\{1,%d\\} " nstars))))) (defun org-format-seconds (string seconds) "Compatibility function replacing format-seconds." -- 2.0.2