Emacs 使用sass模式和yasnippet时防止加载HAML代码段

Emacs 使用sass模式和yasnippet时防止加载HAML代码段,emacs,elisp,yasnippet,Emacs,Elisp,Yasnippet,我正在使用带有sass模式的Emacs和yasnippet来编辑.sass文件。这一切都很好,代码片段正在扩展。但由于sass模式需要haml模式,因此在编辑sass文件时也会加载haml代码段。这是相当恼人的,因为haml代码片段在sass中是无用的 我已在snippets目录中查找.yas父文件,但没有找到。我已经搜索了文档和elisp代码,但是设置或函数并没有跳出我的视线。当我在sass缓冲区中运行M-xyas descripe表时,我会在sass和haml的扩展表上显示 理想情况下,我希

我正在使用带有sass模式的Emacs和yasnippet来编辑.sass文件。这一切都很好,代码片段正在扩展。但由于sass模式需要haml模式,因此在编辑sass文件时也会加载haml代码段。这是相当恼人的,因为haml代码片段在sass中是无用的

我已在snippets目录中查找.yas父文件,但没有找到。我已经搜索了文档和elisp代码,但是设置或函数并没有跳出我的视线。当我在sass缓冲区中运行M-xyas descripe表时,我会在sass和haml的扩展表上显示

理想情况下,我希望在处理sass缓冲区时防止haml代码段在打开时加载。但是,如果我可以设置某种钩子,在加载sass缓冲区时删除haml代码段表,那也很好


谢谢

yasnippets似乎没有办法做你想做的事。所以,您应该打开yasnippet github repo的问题,请求此功能

作为一个临时解决方案,您可以通过建议yas模式按如下方式激活来禁用sass模式下haml模式片段的加载。记住,这是不推荐的

(eval-after-load "yasnippet"
  '(progn (defadvice yas--modes-to-activate (after my-simple-advise)
           (when (eq major-mode 'sass-mode)
             (setq ad-return-value (remove 'haml-mode ad-return-value))))

         (ad-activate 'yas--modes-to-activate)))

以上建议激活yas模式,以便在sass模式下,haml模式不会作为加载模式返回。

你真是个天才!非常感谢。我刚刚打开了一个与yasnippet的问题,所以也许我们可以对此进行选择。此外,您的修复与我的yasnippet版本完美配合。版本:20140227.703您知道为什么sass模式主模式是从haml模式派生出来的吗。在我看来,这个概念是错误的,它打破了yasnippet。请参阅我在中的评论