29

将 yasnippet 可用的所有片段显示到当前主要模式的好方法是什么?

4

4 回答 4

43

此命令显示片段和键

 m-x yas/describe-tables
于 2012-04-14T18:05:07.723 回答
14

yas/describe-tablesyas-describe-tablesin的别名yasnippet.el.

(yas/describe-tables & optional CHOOSE)

自 yasnippet 0.8 以来,此功能已过时;

改为使用yas-describe-tables

显示每个表的片段。

于 2014-07-24T10:55:34.100 回答
5

你在找M-x yas/insert-snippet吗?它将列出所有可用的片段,您可以选择其中一个来插入。

于 2012-04-14T17:43:05.920 回答
5
(defvar lawlist-context-menu-map
  (let ((map (make-sparse-keymap "Context Menu")))
    (define-key map [help-for-help] (cons "Help" 'help-for-help))
    (define-key map [seperator-two] '(menu-item "--"))
    (define-key map [my-menu] (cons "LAWLIST" (make-sparse-keymap "My Menu")))
    (define-key map [my-menu 01] (cons "Next Line" 'next-line))
    (define-key map [my-menu 02] (cons "Previous Line" 'previous-line))
    (define-key map [seperator-one] '(menu-item "--"))
  map) "Keymap for the LAWLIST context menu.")

(defun lawlist-popup-context-menu  (event &optional prefix)
  "Popup a context menu."
  (interactive "@e \nP")
    (define-key lawlist-context-menu-map [lawlist-major-mode-menu]
      `(menu-item ,(symbol-name major-mode)
        ,(mouse-menu-major-mode-map) :visible t))
    (define-key lawlist-context-menu-map (vector major-mode)
      `(menu-item ,(concat "YAS " (symbol-name major-mode))
        ,(gethash major-mode yas--menu-table)
          :visible (yas--show-menu-p ',major-mode)))
    (popup-menu lawlist-context-menu-map event prefix))

(global-set-key [mouse-3] 'lawlist-popup-context-menu)

例子:

于 2014-07-24T18:10:46.857 回答