From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Davison Subject: Re: Saving the *Org Edit Src Example* buffer Date: Tue, 02 Jun 2009 11:49:07 -0400 Message-ID: <87prdmljpo.fsf@stats.ox.ac.uk> References: <873aain0f7.fsf@stats.ox.ac.uk> 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 1MBWEn-00013v-J3 for emacs-orgmode@gnu.org; Tue, 02 Jun 2009 11:49:17 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MBWEi-0000w6-Lh for emacs-orgmode@gnu.org; Tue, 02 Jun 2009 11:49:17 -0400 Received: from [199.232.76.173] (port=56697 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MBWEi-0000vr-GZ for emacs-orgmode@gnu.org; Tue, 02 Jun 2009 11:49:12 -0400 Received: from markov.stats.ox.ac.uk ([163.1.210.1]:46509) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MBWEg-0004oT-Mk for emacs-orgmode@gnu.org; Tue, 02 Jun 2009 11:49:11 -0400 Received: from blackcap.stats.ox.ac.uk (blackcap.stats [163.1.210.5]) by markov.stats.ox.ac.uk (8.13.6/8.13.6) with ESMTP id n52Fn93T001392 for ; Tue, 2 Jun 2009 16:49:09 +0100 (BST) In-Reply-To: <873aain0f7.fsf@stats.ox.ac.uk> (Dan Davison's message of "Tue, 02 Jun 2009 11:02:52 -0400") 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 org-mode mailing list Dan Davison writes: > Following on from the recent improvements to the *Org Edit Src Example* > buffer, I have one more proposal: I have remapped C-x C-s so that it > saves the code in the org buffer, rather than offering to save the Edit > buffer itself (as it used to be with the indirect edit buffer). I find > this essential, although I recognise that remapping C-x C-s is a rather > radical thing to do to an emacs buffer. > > I am using the simple-minded approach below; it seems to work fine (I Hmm, well I had used that for at least a week before posting, but I have now noticed a problem. It's a bit of a corner case. If you create extra blank lines at the end of the source code edit buffer and leave point down there, then do org-edit-src-exit, now back in the org buffer point is outside the source code block. In that case, the code that I just posted doesn't work. I suggest that org-edit-src-exit should in this situation place point at the end of the source code block, for example like this: diff --git a/lisp/org.el b/lisp/org.el index 659dfad..be459b5 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -6757,7 +6757,9 @@ the language, a switch telling of the content should be in a single line." code) (goto-char (point-min)) (if (looking-at "[ \t\n]*\n") (replace-match "")) - (if (re-search-forward "\n[ \t\n]*\\'" nil t) (replace-match "")) + (when (re-search-forward "\n[ \t\n]*\\'" nil t) + (replace-match "") + (setq line (min line (org-current-line)))) (when (org-bound-and-true-p org-edit-src-force-single-line) (goto-char (point-min)) (while (re-search-forward "\n" nil t) Dan > don't even notice a flicker -- should I be surprised at that?), but if > someone can suggest an improved implementation I'd be happy to learn how > it should be done (perhaps there are buffer variables other than point > and mark that I should restore? Is there a general mechanism I should > use for this?). > > Dan > > (defun org-edit-src-save () > "Update the parent org buffer with the edited source code, save > the parent org-buffer, and return to the source code edit > buffer." > (interactive) > (let ((p (point)) > (m (mark))) > (org-edit-src-exit) > (save-buffer) > (org-edit-src-code) > (set-mark m) > (goto-char p))) > > (define-key org-exit-edit-mode-map "\C-x\C-s" 'org-edit-src-save) > > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode