しょぼしょぼすくりぷと xyzzy > lisp サンプルLibrary集 > >mini lisp tool

mini lisp tool

目次(*はおすすめ度)

M-x入力コマンドのショートカットキー表示



M-x で入れたコマンドを実行後
ショートカットキーがあれば表示

いつも M-x 経由で入れていたけど 実はショートカットキーがあることを教えてくれるLispです。
(defun lookup-key-from-command (command)
 (or (find command  (cdr (local-keymap))  :key 'cdr)
	 (find command  (cdr (minor-mode-map))  :key 'cdr)
     (let ((key)(ret))
       (setq key (position command *global-keymap* ))
       (when key (setq ret (cons (*keymap-index-char  key) (elt *global-keymap*  key)))
        )
       ret
      )
  )
  )



(defvar *print-short-cut-after-exe-com* t)
(defvar *xyzzy-language* "JAPANESE")

;標準Lispを上書き
(defun execute-extended-command (command &optional raw arg)
  (interactive "0CM-x: \nP\np")
  (let ((*prefix-args* raw)
	(*prefix-value* arg))
    (setq *last-complex-command* nil)
    (setq *this-command* command)
    (command-execute command (and (interactive-p)
				  (not *executing-macro*)
				  #'ed::record-complex-command))
;ここから上書き
    (when *print-short-cut-after-exe-com*
	(let ((key))
;	  (setq key (lookup-key-from-command (find-symbol command)))
	  (setq key (lookup-key-from-command command))

	 (when key
      (if (string-equal *xyzzy-language* "JAPANESE")
          (minibuffer-message "今 入れたコマンド '~A' に 実は ~S というショートカットキーがあるよ" command (car key) )
        (minibuffer-message "You can run the command '~A' with ~S" command (car key) )
       )
      (sit-for 3)
       )
	  )
	 )
	))
	

しょぼしょぼすくりぷと xyzzy | lisp サンプルLibrary集