问题描述
在单一模式下,我有一堆yasnippet,有时很难在主列表中找到要查找的代码段。
预期的行为:
我的目标是在所有文件/缓冲区中激活名称为“ model”的代码段(例如app / models / my_model.rb)
# that's ruby-mode/model-foo:
# -*- mode: snippet -*-
# name: model - foo activation name
# condition: (string-match-p (regexp-quote "models") (buffer-file-name (window-buffer (minibuffer-selected-window))))
# --
model_foo
该文件/缓冲区中的文件名带有“ controller”(例如app / controllers / another_model.rb或test / controllers / another_model.rb等)
# that's ruby-mode/controller-foo:
# -*- mode: snippet -*-
# name: controller - foo activation name
# condition: (string-match-p (regexp-quote "controllers") (buffer-file-name (window-buffer (minibuffer-selected-window))))
# --
controller_foo
实际行为:
在Ruby模式下,所有文件中的两个代码段均已激活(可供选择)。看来condition:
被完全忽略了。我什至尝试将其设置为“#condition:false”,并且代码片段仍在工作/可见。
什么可能导致此问题?
pkg-info-package-version yasnippet
20191222.2206
解决方法
我还没有解决这个问题的方法,但是我只是不小心弄清楚了是什么原因造成的。
仅在使用SPC i s
的Spacemacs spacemacs/helm-yas
的默认快捷方式中出现问题,该快捷方式似乎完全忽略了YASnippet的# condition:
系统。
作为(临时?)解决方法,您可以只使用yas-insert-snippet
,其工作原理与spacemacs/helm-yas
非常相似,但是条件系统运行正常。