Yasnippet:如何扩展“或”而不是“-or”

时间:2013-01-15 09:58:57

标签: emacs yasnippet

标题说,是否有可能改变yasnippets的行为,以便无法扩展“-or”,但可以扩展“[newline]或”或“[tab]或”only?< / p>

我想这样做是因为我试图在扩展时自动扩展我的yasnippets,并且在编写变量名时只会发生冲突。

1 个答案:

答案 0 :(得分:1)

我在这里得到了解决方案: http://ergoemacs.org/emacs/emacs_tip_yasnippet_expand_whole_hyphenated_word.html

有变量(defvar yas-key-syntaxes (list "w" "w_" "w_." "w_.()" "^ ")..),它控制各种扩展。 "w"表示“ - 或”被展开为单独的“或”。

如果

(setq yas-key-syntaxes '("w_" "w_." "w_.()" "^ "))

然后"-or"仅作为复杂表达式"<some>-or"展开。但" or"通常会得到扩展。

因此,仅当文件"buffer-substring"包含内容

时,才会展开buffer-substring.yasnippet
# contributor: Xah Lee (XahLee.org)
# name: buffer-substring
# key: buffer-substring
# --
(buffer-substring START$0 END)

"w" "buffer-substring"关键字substring.yasnippet将扩展为# key: bs

如果文件buffer-substring.yasnippet中还有其他字符串"buffer-substring",则{{1}}根本不会展开。 (对于版本:0.8.0)