Vim 在 JSON 文件中
Vim modeline in a JSON file
我正在尝试将以下 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 模式行?
您将无法在文件本身中执行此操作。 JSON 不支持注释,这是一种非常无情的语法。
这可能适用于某些 JSON 文件,例如 .eslintrc
,但在其他文件中,您可能会倒霉。更严格的 JSON 解析器不允许这样做,因此这取决于您目前使用的工具是基于哪个解析器构建的。
与其猜测哪些解析器是宽容的,哪些不是,您最好告诉 Vim 如何使用 autocmd
.
来做到这一点
autocmd BufNewFile,BufRead *.tern-config set filetype=json
如果像这样放置一个对象
"_vim_": { "modeline": "/* vim: set ft=json noet ts=4 sw=4: */" }
作为 json 文件顶级对象列表的第一个或最后一个条目,它将被 vim 用作模式行(只要该行在开头或文件末尾,其中 "close enough" 表示:在 vim 根据其 'modelines' 选项(默认为 5)扫描模式行的行数内。
此外,应仔细选择对象的名称(“_vim_”),以便 - 充其量 - 它会被使用该文件作为输入的软件忽略,或者 -至少 -- 可以被软件用户忽略(即,它不会导致任何被视为不良行为的副作用)。
我正在尝试将以下 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 模式行?
您将无法在文件本身中执行此操作。 JSON 不支持注释,这是一种非常无情的语法。
这可能适用于某些 JSON 文件,例如 .eslintrc
,但在其他文件中,您可能会倒霉。更严格的 JSON 解析器不允许这样做,因此这取决于您目前使用的工具是基于哪个解析器构建的。
与其猜测哪些解析器是宽容的,哪些不是,您最好告诉 Vim 如何使用 autocmd
.
autocmd BufNewFile,BufRead *.tern-config set filetype=json
如果像这样放置一个对象
"_vim_": { "modeline": "/* vim: set ft=json noet ts=4 sw=4: */" }
作为 json 文件顶级对象列表的第一个或最后一个条目,它将被 vim 用作模式行(只要该行在开头或文件末尾,其中 "close enough" 表示:在 vim 根据其 'modelines' 选项(默认为 5)扫描模式行的行数内。
此外,应仔细选择对象的名称(“_vim_”),以便 - 充其量 - 它会被使用该文件作为输入的软件忽略,或者 -至少 -- 可以被软件用户忽略(即,它不会导致任何被视为不良行为的副作用)。