标题说,是否有可能改变yasnippets的行为,以便无法扩展“-or”,但可以扩展“[newline]或”或“[tab]或”only?< / p>
我想这样做是因为我试图在扩展时自动扩展我的yasnippets,并且在编写变量名时只会发生冲突。
答案 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)