最近从MELPA更新了Yasnippet,我希望只能停用文本模式附带的代码段xxx
和todo
。第一个扩展为x
,另一个扩展为t
,这让我感到烦恼,因为我在org-mode中编写数学文本,我需要写几个x
和t
单独使用,然后按TAB
退出括号。
从http://capitaomorte.github.io/yasnippet/snippet-reference.html#yas-buffer-local-condition开始,如果代码段中有#condition:
指令,我似乎可以做一些事情,但上面提到的代码段没有。
如果我只是删除文件,我会找到自己的方式,但不幸的是,它们会在Yasnippet的每次更新时重新出现。
答案 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