Vim显示没有任何引号的json文件

Joe*_* Z. 7 javascript vim json

我有一个经过验证的json文件,在Vim中没有任何引号显示.唯一正确显示json文件的方法是在可视模式下.

我试过禁用eslint,jshint,youcompleteme

终端中的OS X MacVim 7.4 Vim 7.4

在此输入图像描述

在此输入图像描述

Ing*_*kat 15

内置$VIMRUNTIME/syntax/json.vim使用Vim的隐藏功能来隐藏引号,可能是为了消除不必要的混乱.

您必须通过将'conceallevel'选项设置为2或启用隐藏3; 默认为0(关闭).同样,由于您的'concealcursor'设置,您会在可视模式下看到引号.

在JSON文件中,检查隐藏选项的设置位置:

:verbose set conceallevel? concealcursor?
Run Code Online (Sandbox Code Playgroud)

然后,您可以根据自己的喜好调整设置.

  • 我发现罪魁祸首是一个名为indentLine的插件.它改变了隐藏级别,默认值为0 (8认同)

Max*_*998 14

添加到当前接受的答案中,您可以通过在您中设置以下选项来禁用专门针对 JSON 的行为.vimrc

" Disable quote concealing in JSON files
let g:vim_json_conceal=0
Run Code Online (Sandbox Code Playgroud)

这样,您不必设置conceallevel为 0(禁用),这也会使像 indentLine(在上面的评论中提到)这样的有用插件不再起作用。

  • 这对我有帮助 (4认同)
  • @user8162 vim 的内置 json 突出显示使用 g:vim_json_conceal。 (2认同)

use*_*162 11

就像已经提到的,我们可以检查哪些插件导致增加的隐藏级别:

:verbose set conceallevel?
Run Code Online (Sandbox Code Playgroud)

如果隐藏级别是由vim-json Plugin引起的:

let g:vim_json_syntax_conceal = 0
Run Code Online (Sandbox Code Playgroud)

如果隐藏是由indentLine插件引起的:

let g:indentLine_setConceal = 0
Run Code Online (Sandbox Code Playgroud)

在 vimrc 中,您可以为 json 文件添加两个选项:

autocmd Filetype json
  \ let g:indentLine_setConceal = 0 |
  \ let g:vim_json_syntax_conceal = 0
Run Code Online (Sandbox Code Playgroud)

  • 如果我对 [indentLine](https://github.com/Yggdroot/indentLine) 插件使用 `let g:indentLine_setConceal = 0`,它就不再起作用了。引用其自述文件:“您可以自定义这些设置,但如果隐藏级别未设置为 1 或 2,则该插件将无法运行。” :( (3认同)
  • @Wolfson 和其他人,设置 `let g:indentLine_fileTypeExclude = ['json']` 使用 indentLine 修复了这个问题 (2认同)