From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Saving the *Org Edit Src Example* buffer Date: Tue, 2 Jun 2009 19:12:54 +0200 Message-ID: References: <873aain0f7.fsf@stats.ox.ac.uk> <87prdmljpo.fsf@stats.ox.ac.uk> Mime-Version: 1.0 (Apple Message framework v935.3) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MBXXu-0000ne-FQ for emacs-orgmode@gnu.org; Tue, 02 Jun 2009 13:13:06 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MBXXp-0000l8-HQ for emacs-orgmode@gnu.org; Tue, 02 Jun 2009 13:13:05 -0400 Received: from [199.232.76.173] (port=57268 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MBXXp-0000l1-Bj for emacs-orgmode@gnu.org; Tue, 02 Jun 2009 13:13:01 -0400 Received: from mx20.gnu.org ([199.232.41.8]:52389) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MBXXo-0006Ek-Sz for emacs-orgmode@gnu.org; Tue, 02 Jun 2009 13:13:01 -0400 Received: from fg-out-1718.google.com ([72.14.220.158]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MBXXo-0008HG-7h for emacs-orgmode@gnu.org; Tue, 02 Jun 2009 13:13:00 -0400 Received: by fg-out-1718.google.com with SMTP id e12so2476973fga.7 for ; Tue, 02 Jun 2009 10:12:59 -0700 (PDT) In-Reply-To: <87prdmljpo.fsf@stats.ox.ac.uk> 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: Dan Davison Cc: emacs org-mode mailing list Applied, thanks. - Carsten On Jun 2, 2009, at 5:49 PM, Dan Davison wrote: > 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 > > > _______________________________________________ > 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