【问题标题】:Allow vim snipMate snippets to work on different file types允许 vim snipMate 片段处理不同的文件类型
【发布时间】:2014-04-04 03:00:02
【问题描述】:

我对 vim 还很陌生,一直在玩 spf13 配置,这很棒。我无法弄清楚的一件事是如何允许 sn-ps 将一种类型的文件用于另一种类型的文件。在我个人的情况下,我希望在 html 文件中使用 javascript 和 javascript-jquery sn-ps。这是我尝试过的:

au BufRead,BufNewFile *.html set ft=html.js

call ExtractSnipsFile(g:neosnippet#snippets_directory.'javacript-jquery.snippets','html')

let g:snipMate = {}
let g:snipMate.scope_alias = {}
let g:snipMate.scope_alias['html'] = 'html,javascript,javascript-jquery'

let g:snipMate = {}
let g:snipMate.scope_aliases = {}
let g:snipMate.scope_aliases['html'] = 'html,javascript,javascript-jquery'

我尝试将这些行放在 .vimrc.before.local 和 .vimrc.local 文件中。

这些似乎都不允许 javascript sn-ps 在 html 文件中工作。我终于放弃了,将所有的 javascript 和 javascript-jquery sn-ps 处理到了 html sn-p 文件中。 这样就成功了,但我很想知道是否有其他方法。

【问题讨论】:

    标签: vim snipmate spf13vim


    【解决方案1】:

    你快到了。第一行应该足以得到你想要的,但 JavaScript 文件的文件类型不是js,而是javascript。

    autocmd BufRead,BufNewFile *.html set ft=html.javascript
    

    它也为你提供了 js 的全能补全功能。

    【讨论】:

    • 哦,我差点忘了! SPF13 是一个巨大且不必要的垃圾:尽快放弃它。
    • 也是g:snipMate.scope_aliases 不是scope_alias
    【解决方案2】:

    我之前使用过 snipmate,这是我的配置:

    let g:snipMate = {}
    let g:snipMate.scope_aliases = {}
    let g:snipMate.scope_aliases.haml = 'javascript'
    let g:snipMate.scope_aliases.jade = 'javascript'
    let g:snipMate.scope_aliases.markdown = 'html'
    let g:snipMate.scope_aliases.javascript = 'javascript.d3,javascript-jquery'
    

    您不必费心设置复合文件类型,也不必自己指定要为其定义范围别名的文件类型。这工作得非常好并且递归。由于我们也为 javascript.dr 和 javascript-jquery、haml 文件类型定义了 javascript 文件类型到 scope_alias,因此为 javascript 定义了 scope_alias 后,还为它定义了所有 javascript 的 scope_aliases。您不必重复自己。

    我不确定 .vimrc.local 或其他文件,我只是把它放在我的 .vimrc 中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多