From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adam Spiers Subject: Re: FR: keystroke to cancel prefix sub-keymap Date: Mon, 31 Dec 2007 12:10:18 +0000 Message-ID: <20071231121018.GJ20947@atlantic.linksys.moosehall> References: <20071229214851.GC10722@atlantic.linksys.moosehall> Reply-To: Adam Spiers Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1J9JTL-0006Vz-6F for emacs-orgmode@gnu.org; Mon, 31 Dec 2007 07:10:23 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1J9JTJ-0006Vm-PZ for emacs-orgmode@gnu.org; Mon, 31 Dec 2007 07:10:21 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J9JTJ-0006Vj-Iz for emacs-orgmode@gnu.org; Mon, 31 Dec 2007 07:10:21 -0500 Received: from mail.beimborn.com ([70.84.38.100]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1J9JTJ-0000HF-7z for emacs-orgmode@gnu.org; Mon, 31 Dec 2007 07:10:21 -0500 Received: from mail.beimborn.com (localhost.localdomain [127.0.0.1]) by mail.beimborn.com (8.12.11.20060308/8.12.8) with ESMTP id lBVCAK2O010659 for ; Mon, 31 Dec 2007 06:10:20 -0600 Received: from localhost (localhost [[UNIX: localhost]]) by mail.beimborn.com (8.12.11.20060308/8.12.11/Submit) id lBVCAKZi010649 for emacs-orgmode@gnu.org; Mon, 31 Dec 2007 12:10:20 GMT Content-Disposition: inline In-Reply-To: <20071229214851.GC10722@atlantic.linksys.moosehall> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Adam Spiers (orgmode@adamspiers.org) wrote: > Suppose that I have a sub-keymap for custom agenda commands with > prefix 's', i.e. shortcuts 's1', 's2', 's3' and so on. I might invoke > org-agenda, press 's', then change my mind and want to use another > custom command instead. Currently, the only way of doing this would > be to press something like 'q' or C-g, then reinvoke org-agenda. It > would be nice instead if there was a keystroke which simply returned > you to the first *Agenda Commands* buffer. The following patch > demonstrates the required behaviour, but as you can see, is not a > particularly clean way of doing it. > > http://www.adamspiers.org/cgi-bin/hg.cgi/org-pacific/rev/8fadf3f7ddda I forgot to say that the previous patch I posted bound the cancellation to SPC; however I think DEL would be a more intuitive choice: http://www.adamspiers.org/cgi-bin/hg.cgi/org-atlantic/rev/69815deb4483 # HG changeset patch # User Adam Spiers # Date 1199102771 0 # Node ID 69815deb4483e0e782ec0e164d2058a511243e64 # Parent 518295ce53e0594261d7e1b8d92ab8552c0bd69a SPACE to cancel prefix sub-keymap diff -r 518295ce53e0 -r 69815deb4483 org.el --- a/org.el Sat Dec 29 20:42:27 2007 +0000 +++ b/org.el Mon Dec 31 12:06:11 2007 +0000 @@ -19340,6 +19340,14 @@ L Timeline for current buffer (setq restriction nil)) ((and (equal selstring "") (memq c '(?a ?t ?m ?L ?C ?e ?T ?M ?# ?! ?/))) (throw 'exit (cons (setq selstring (char-to-string c)) restriction))) + ((and (> (length selstring) 0) (eq c ?\d)) + (delete-window) + (org-agenda-get-restriction-and-command prefix-descriptions)) +;; Can't do it this way because help text describing hardcoded agenda +;; commands is inserted into buffer outside the (while t ...) loop. +;; (setq selstring "" +;; rmheader 0 +;; custom org-agenda-custom-commands)) ((equal c ?q) (error "Abort")) (t (error "Invalid key %c" c))))))))