]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve key bindings in edit-abbrevs-mode
authorLeo Liu <sdl.web@gmail.com>
Wed, 30 Mar 2011 01:06:00 +0000 (09:06 +0800)
committerLeo Liu <sdl.web@gmail.com>
Wed, 30 Mar 2011 01:06:00 +0000 (09:06 +0800)
C-x C-s and C-x C-w in edit-abbrevs-mode now do something similar to
their corresponding global bindings.

lisp/ChangeLog
lisp/abbrev.el

index 8e6e78c705ec844e517dfa38b60ce0f0c978f62c..7ce8b62b333bdc144c7167a39ea7d098b635ae47 100644 (file)
@@ -1,3 +1,10 @@
+2011-03-30  Leo Liu  <sdl.web@gmail.com>
+
+       * abbrev.el (abbrev-edit-save-to-file, abbrev-edit-save-buffer):
+       New commands.
+       (edit-abbrevs-map): Bind them here.
+       (write-abbrev-file): New optinal arg VERBOSE.  (Bug#5937)
+
 2011-03-29  Ken Manheimer  <ken.manheimer@gmail.com>
 
        * allout.el (allout-hide-by-annotation, allout-flag-region):
index 504d9fcbbced35d405971ab62dd782e080663f92..ddf37aff58f530a042e7674c4fca3c46d523670a 100644 (file)
@@ -65,7 +65,8 @@ abbreviation causes it to expand and be replaced by its expansion."
 \f
 (defvar edit-abbrevs-map
   (let ((map (make-sparse-keymap)))
-    (define-key map "\C-x\C-s" 'edit-abbrevs-redefine)
+    (define-key map "\C-x\C-s" 'abbrev-edit-save-buffer)
+    (define-key map "\C-x\C-w" 'abbrev-edit-save-to-file)
     (define-key map "\C-c\C-c" 'edit-abbrevs-redefine)
     map)
   "Keymap used in `edit-abbrevs'.")
@@ -216,13 +217,15 @@ Does not display any message."
                                        ;(interactive "fRead abbrev file: ")
   (read-abbrev-file file t))
 
-(defun write-abbrev-file (&optional file)
+(defun write-abbrev-file (&optional file verbose)
   "Write all user-level abbrev definitions to a file of Lisp code.
 This does not include system abbrevs; it includes only the abbrev tables
 listed in listed in `abbrev-table-name-list'.
 The file written can be loaded in another session to define the same abbrevs.
 The argument FILE is the file name to write.  If omitted or nil, the file
-specified in `abbrev-file-name' is used."
+specified in `abbrev-file-name' is used.
+If VERBOSE is non-nil, display a message indicating where abbrevs
+have been saved."
   (interactive
    (list
     (read-file-name "Write abbrev file: "
@@ -252,7 +255,25 @@ specified in `abbrev-file-name' is used."
                'emacs-mule)))
       (goto-char (point-min))
       (insert (format ";;-*-coding: %s;-*-\n" coding-system-for-write))
-      (write-region nil nil file nil 0))))
+      (write-region nil nil file nil (and (not verbose) 0)))))
+
+(defun abbrev-edit-save-to-file (file)
+  "Save all user-level abbrev definitions in current buffer to FILE."
+  (interactive
+   (list (read-file-name "Save abbrevs to file: "
+                        (file-name-directory
+                         (expand-file-name abbrev-file-name))
+                        abbrev-file-name)))
+  (edit-abbrevs-redefine)
+  (write-abbrev-file file t))
+
+(defun abbrev-edit-save-buffer ()
+  "Save all user-level abbrev definitions in current buffer.
+The saved abbrevs are written to the file specified by
+`abbrev-file-name'."
+  (interactive)
+  (abbrev-edit-save-to-file abbrev-file-name))
+
 \f
 (defun add-mode-abbrev (arg)
   "Define mode-specific abbrev for last word(s) before point.