在Emacs中停用特定的yasnippets

时间:2014-03-07 00:22:34

标签: emacs yasnippet

最近从MELPA更新了Yasnippet,我希望只能停用文本模式附带的代码段xxxtodo。第一个扩展为x,另一个扩展为t,这让我感到烦恼,因为我在org-mode中编写数学文本,我需要写几个xt单独使用,然后按TAB退出括号。

http://capitaomorte.github.io/yasnippet/snippet-reference.html#yas-buffer-local-condition开始,如果代码段中有#condition:指令,我似乎可以做一些事情,但上面提到的代码段没有。

如果我只是删除文件,我会找到自己的方式,但不幸的是,它们会在Yasnippet的每次更新时重新出现。

1 个答案:

答案 0 :(得分:2)

一种可能的解决方案是通过向每个代码段添加一行代码来控制带有绑定的代码段 - 例如# binding: C-I a b c# binding: C-I d e f组合{{ 1}}相当于制表键,下列字母之间的空格意味着它们一次被单独按下一个。此外,还可以修改以下代码行以反映不同的键:C-I# key: a_b_c

变量# key: d_e_f可用于控制片段的位置。将片段移动到其他位置可能是个好主意,以便将来的更新不会触及它们(例如yas-snippet-dirs)。

https://github.com/AndreaCrotti/yasnippet-snippets/tree/master/text-mode


el-get代码段如下所示 - https://github.com/AndreaCrotti/yasnippet-snippets/blob/master/text-mode/xxx

ORIGINAL

xxx

改性

# -*- mode: snippet -*-
# name: xxx
# key: x
# --
`(yas-with-comment "XXX: ")`

# -*- mode: snippet -*- # name: xxx # key: a_b_c # binding: C-I a b c # -- `(yas-with-comment "XXX: ")` 代码段如下所示 - https://github.com/AndreaCrotti/yasnippet-snippets/blob/master/text-mode/todo

ORIGINAL

todo

改性

# -*- mode: snippet -*-
# name: todo
# key: t
# --
`(yas-with-comment "TODO: ")`

对于那些好奇的人,# -*- mode: snippet -*- # name: todo # key: d_e_f # binding: C-I d e f # -- `(yas-with-comment "TODO: ")` 函数看起来像这样 - https://github.com/AndreaCrotti/yasnippet-snippets/blob/master/text-mode/.yas-setup.el

yas-with-comment