]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve (describe-personal-keybindings) output
authorTing-Yu Lin <aethanyc@gmail.com>
Wed, 4 Sep 2013 14:40:55 +0000 (22:40 +0800)
committerTing-Yu Lin <aethanyc@gmail.com>
Wed, 4 Sep 2013 15:15:28 +0000 (23:15 +0800)
Create *Personal Keybindings* by with-output-to-temp-buffer. It
redirects standard output to the buffer and display it in help mode. So
we can get help mode keybindings such as "q" for free.

Quote the command-desc output so that it is made into a hyperlink.

lisp/use-package/bind-key.el

index 3f61feeb760d46603c629c0ed1dfce330602aef4..c4b3f19deb4707ae787b796ad9c0bf037d6d432c 100644 (file)
       (cons (string< (caar l) (caar r)) nil)))))
 
 (defun describe-personal-keybindings ()
+  "Display all the personal keybindings defined by `bind-key'."
   (interactive)
-  (with-current-buffer (get-buffer-create "*Personal Keybindings*")
-    (delete-region (point-min) (point-max))
-    (insert "Key name          Command                                 Comments
+  (with-output-to-temp-buffer "*Personal Keybindings*"
+    (princ "Key name          Command                                 Comments
 ----------------- --------------------------------------- ---------------------
 ")
     (let (last-binding)
                                (car (compare-keybindings l r))))))
 
         (if (not (eq (cdar last-binding) (cdar binding)))
-            (insert ?\n (format "\n%s\n%s\n\n"
-                                (cdar binding)
-                                (make-string 79 ?-)))
+            (princ (format "\n\n%s\n%s\n\n"
+                           (cdar binding)
+                           (make-string 79 ?-)))
           (if (and last-binding
                    (cdr (compare-keybindings last-binding binding)))
-              (insert ?\n)))
+              (princ "\n")))
 
         (let* ((key-name (caar binding))
                (at-present (lookup-key (or (symbol-value (cdar binding))
                                       (get-binding-description was-command)))
                (at-present-desc (get-binding-description at-present))
                )
-          (insert
+          (princ
            (format
             "%-18s%-40s%s\n"
-            key-name command-desc
+            key-name (format "`%s\'" command-desc)
             (if (string= command-desc at-present-desc)
                 (if (or (null was-command)
                         (string= command-desc was-command-desc))
                   (format "(%s)" was-command-desc))
               (format "[now: %s]" at-present)))))
 
-        (setq last-binding binding)))
-
-    (goto-char (point-min))
-    (display-buffer (current-buffer))))
+        (setq last-binding binding)))))
 
 (provide 'bind-key)
 ;; Local Variables: