浏览代码

org-src.el (org-edit-src-turn-on-auto-save): New option

* org-src.el (org-edit-src-turn-on-auto-save): New option.
(org-edit-src-code): Use it.
(org-edit-src-auto-save-idle-delay): Enhance docstring.

* doc/org.texi (Editing source code): Document
`org-edit-src-auto-save-idle-delay' and
`org-edit-src-turn-on-auto-save'.

Thanks to Charles C. Berry for bringing this up again.
Bastien Guerry 12 年之前
父节点
当前提交
7790a97cdd
共有 2 个文件被更改,包括 27 次插入7 次删除
  1. 9 4
      doc/org.texi
  2. 18 3
      lisp/org-src.el

+ 9 - 4
doc/org.texi

@@ -13465,11 +13465,16 @@ Source code in the specified language.
 @cindex code block, editing
 @cindex code block, editing
 @cindex source code, editing
 @cindex source code, editing
 
 
+@vindex org-edit-src-auto-save-idle-delay
+@vindex org-edit-src-turn-on-auto-save
 @kindex C-c '
 @kindex C-c '
-Use @kbd{C-c '} to edit the current code block.  This brings up
-a language major-mode edit buffer containing the body of the code
-block.  Saving this buffer will write the new contents back to the Org
-buffer.  Use @kbd{C-c '} again to exit.
+Use @kbd{C-c '} to edit the current code block.  This brings up a language
+major-mode edit buffer containing the body of the code block.  Manually
+saving this buffer with @key{C-x C-s} will write the contents back to the Org
+buffer.  You can also set @var{org-edit-src-auto-save-idle-delay} to save the
+base buffer after some idle delay, or @code{org-edit-src-turn-on-auto-save}
+to auto-save this buffer into a separate file using @code{auto-save-mode}.
+Use @kbd{C-c '} again to exit.
 
 
 The @code{org-src-mode} minor mode will be active in the edit buffer.  The
 The @code{org-src-mode} minor mode will be active in the edit buffer.  The
 following variables can be used to configure the behavior of the edit
 following variables can be used to configure the behavior of the edit

+ 18 - 3
lisp/org-src.el

@@ -64,10 +64,25 @@ there are kept outside the narrowed region."
 		   (const :tag "from `lang' element")
 		   (const :tag "from `lang' element")
 		   (const :tag "from `style' element")))))
 		   (const :tag "from `style' element")))))
 
 
+(defcustom org-edit-src-turn-on-auto-save nil
+  "Non-nil means turn `auto-save-mode' on when editing a source block.
+This will save the content of the source code editing buffer into
+a newly created file, not the base buffer for this source block.
+
+If you want to regularily save the base buffer instead of the source
+code editing buffer, see `org-edit-src-auto-save-idle-delay' instead."
+  :group 'org-edit-structure
+  :version "24.4"
+  :package-version '(Org . "8.0")
+  :type 'boolean)
+
 (defcustom org-edit-src-auto-save-idle-delay 0
 (defcustom org-edit-src-auto-save-idle-delay 0
-  "Delay of idle time before auto-saving src code buffers.
+  "Delay before saving a source code buffer back into its base buffer.
 When a positive integer N, save after N seconds of idle time.
 When a positive integer N, save after N seconds of idle time.
-When 0 (the default), don't auto-save."
+When 0 (the default), don't auto-save.
+
+If you want to save the source code buffer itself, don't use this.
+Check `org-edit-src-turn-on-auto-save' instead."
   :group 'org-edit-structure
   :group 'org-edit-structure
   :version "24.4"
   :version "24.4"
   :package-version '(Org . "8.0")
   :package-version '(Org . "8.0")
@@ -351,7 +366,7 @@ the display of windows containing the Org buffer and the code buffer."
 	(org-src-mode)
 	(org-src-mode)
 	(set-buffer-modified-p nil)
 	(set-buffer-modified-p nil)
 	(setq buffer-file-name nil)
 	(setq buffer-file-name nil)
-	(when auto-save-default
+	(when org-edit-src-turn-on-auto-save
 	  (setq buffer-auto-save-file-name
 	  (setq buffer-auto-save-file-name
 		(concat (make-temp-name "org-src-")
 		(concat (make-temp-name "org-src-")
 			(format-time-string "-%Y-%d-%m") ".txt")))
 			(format-time-string "-%Y-%d-%m") ".txt")))