JSON文件中的Vim模式

时间:2017-01-17 23:55:02

标签: json vim tern

我尝试将以下vim modeline添加到我的全局.tern-config文件中:

// vim: set ft=json:
{
    plugins: {
    ...

但是,Tern服务器无法启动,出现以下错误:

Failed to start server: 
Bad JSON in /Users/XXXXX/.tern-config: Unexpected token / in JSON at position 0

我怀疑这个错误的原因是JSON's lack of support for comments.我应该注意我的.eslintrc文件中的相同模式行有用。

如何在.tern-config文件中加入vim模式?

2 个答案:

答案 0 :(得分:2)

您无法在文件本身中执行此操作。 JSON不支持注释,这是一种非常难以理解的语法。

这可能适用于某些JSON文件,例如.eslintrc,但在其他文件中,您将失去运气。更严格的JSON解析器将不允许它,因此它取决于您当前使用的工具是基于哪个解析器。

不要猜测哪些解析器是宽容的,哪些不是,你最好不要告诉Vim如何使用autocmd来做这件事。

autocmd BufNewFile,BufRead *.tern-config set filetype=json

答案 1 :(得分:1)

如果放置这样的物体

"_vim_": { "modeline": "/* vim: set ft=json noet ts=4 sw=4: */" }

作为json文件顶级对象列表的第一个或最后一个条目,它将被vim用作modeline(只要该行在文件的开头或结尾处显示得足够接近,其中“足够接近”表示:vim根据其“ modelines”选项(默认为5)在扫描模式行的行数之内。

此外,应该仔细选择对象的名称(“ _vim_”),以便-最多-使用该文件作为输入的软件将其忽略,或者-至少-可以将其忽略。该软件的用户(即不会引起任何被视为有害行为的副作用)。