emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Thorsten Jolitz <tjolitz@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: [NEW] navi-mode for org files
Date: Mon, 08 Apr 2013 21:27:49 +0200	[thread overview]
Message-ID: <877gkcvn4a.fsf@gmail.com> (raw)
In-Reply-To: loom.20130408T034830-346@post.gmane.org

Charles Berry <ccberry@ucsd.edu> writes:

> Thorsten Jolitz <tjolitz <at> gmail.com> writes:

>> I made navi-mode (=> super-fast buffer navigation, visibility-cycling,
>> structure-editing, and much more, with one-key commands in an associated
>> read-only *Navi* buffer) work with Org-mode buffers too. 

> Some comments:
>
> Maybe you have this on your TODO list, but some things do not work as 
> I would expect.
>
> In the *Navi:myfile.org* buffer, 1,2,3, Z, N, W are all good.
>
> C-1 N also good.
>
> But C-1 Z, C-2 W don't quite work.

> I think the part of the regexp that represents the 'Z' or 'W' search needs
> to be wrapped in \( ... \) as the parts beyond  
>
>   \(^\* \|^[ ^I]*#\+name:[ ^I]*
>
> do not match.

yes, you are right, I noticed that too, its even captured in my new
youtube screencast ;)

But I'm not sure why it doesn't work. Z searches for results with names,
i.e. lines like this:

     ,--------------------------------
     | 87:#+name: org-mode-doc-version
     | 93:#+name: org-mode-version
     `--------------------------------

the complicated regexp is simply copied from the Org-mode sources. Z
alone matches alright and finds the 2 named results in Bernt Hansen's
Org tutorial.

C-2 Z then makes a regexp alternative, combining this keyword search
with a simple regexp that matches headlines up to level 2 (^\*\*? ).

The strange thing is that making this regexp alternative works in all
other cases (for org and elisp), and it looks alright in this case too:

,---------------------------------------------------------------------------
| "\(^\*\*? \|^[
| ^I]*#\+\(name\|results\|tblname\)\(\[\(<\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}
| ?[^^M^J>]*?\)> \)?\([[:alnum:]]+\)\]\)?\:[ ^I]*\([^
| ()^L^I^J^M^K]+\)\((\(.*\))\)\)"
`---------------------------------------------------------------------------

I followed your suggestion and added parenthesis, but to no avial. This
only matches the headline too, not the named results:

,---------------------------------------------------------------------------
| "\(^\*\*? \|\(^[
| ^I]*#\+\(name\|results\|tblname\)\(\[\(<\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}
| ?[^^M^J>]*?\)> \)?\([[:alnum:]]+\)\]\)?\:[ ^I]*\([^
| ()^L^I^J^M^K]+\)\((\(.*\))\)\)\)"
`---------------------------------------------------------------------------

Any hints from the regexp experts why the above doesn't work, but the
following much simpler regexp alternative (C-2 N) does work an matches
the exact same two lines?

,-------------------------------------
| "\(^\*\*? \|^[ ^I]*#\+name:[ ^I]*\)"
`-------------------------------------

,---------------------------------------------------------------------------------
| 132 matches for "\(^\*\*? \|^[ ^I]*#\+name:[ ^I]*\)" in buffer: bernt-hansen.org
|      18:* How To Use This Document
|      50:* License
|      82:* Change History - What's new
|      87:#+name: org-mode-doc-version
|      93:#+name: org-mode-version
`---------------------------------------------------------------------------------

> ===
>
> I find myself doing "1 n n r 2 r Z w 2 n r Z" to look at successive pieces 
> of a buffer.
>
> Is there a slicker way to do stuff like this?

actually ["r 3" do stuff "2 w"] and ["r 4" do stuff "3 w"] is something
I do frequently, but since 'r' and 'w' are directly below '1 2 3 4' I
find it easy and fast to type.

Alternatively, you could start with e.g. 4 (shows headlines up to level
4) or directly C-4 Z, use SPC and DEL and 'n' and 'p' to go to the
relevant headline, and narrow with 'r'.

>  ,------------------------------------------------------------------------
>> | PS 
>> | 
>> | Please note that all this is available for your source code buffers
>> | too (e.g. in Emacs Lisp) when you structure them the 'outshine' way. 
>> | 
>> | Use outorg.el, outshine.el or navi-mode.el as example files to see what
>> | I mean (read comment-section of outshine.el for installation tips). 
>> | 
>> | Do 'M-s n' on one of them to open a *Navi* buffer. Try the the
>> | commands from list item (5) above and don't forget to checkout command
>> | 'e' - it is extremely useful since it opens the subtree at point (or,
>> | with prefix, the whole Emacs Lisp buffer) in a temporary Org-mode edit
>> | buffer.
>> `------------------------------------------------------------------------
>
> I cannot seem to get this to work. If I try to execute
>
> ;; # #+begin_src emacs-lisp
> ;; #  (require 'outshine)
> ;; #  (add-hook ‘outline-minor-mode-hook ‘outshine-hook-function)
> ;; # #+end_src
>
> the add-hook returns 
>
> Debugger entered--Lisp error: (void-variable ‘outline-minor-mode-hook)
>
>
> I am running 
>
> Org-mode version 8.0-pre (release_8.0-pre-276-g3d3465 @ ...
> GNU Emacs 24.3.1 (x86_64-apple-darwin, NS apple-appkit-1038.36) of
>  2013-03-12 on bob.porkrind.org

Looks as if outshine is loaded before outline? But since outshine
requires outline, 'outline-minor-mode-hook' should be loaded when the
hook function is added. 
It works here, I'm running:

,----------------------------------------------------------------
| GNU Emacs Version:
| (24.3.1 24 3 gnu/linux hostname x86_64-unknown-linux-gnu x nil)
| Org-mode version 8.0-pre (release_8.0-pre-199-g2746c7 @ ...
`----------------------------------------------------------------

could you try 'M-x toggle-debug-on-error', execute the above, and send
the backtrace?

-- 
cheers,
Thorsten

  reply	other threads:[~2013-04-08 19:28 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-04 13:49 [NEW] navi-mode for org files Thorsten Jolitz
2013-04-08  2:12 ` Charles Berry
2013-04-08 19:27   ` Thorsten Jolitz [this message]
2013-04-08 21:41     ` Charles Berry
2013-04-08 22:19       ` Thorsten Jolitz
2013-04-09  1:47         ` Charles Berry
2013-04-09  7:58           ` Thorsten Jolitz
2013-04-08 19:31 ` Thorsten Jolitz
2013-04-09  2:16 ` Charles Berry
2013-04-09  7:52   ` Thorsten Jolitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877gkcvn4a.fsf@gmail.com \
    --to=tjolitz@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).