4

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

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 片段在 html 文件中工作。我终于放弃了,将所有的 javascript 和 javascript-jquery 代码片段处理到了 html 代码片段文件中。那是诀窍,但我很想知道是否有另一种方法。

4

2 回答 2

2

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

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

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

于 2014-04-04T05:18:05.093 回答
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

于 2014-04-04T05:32:50.200 回答