【问题标题】:Vim displays json file without any quotesVim 显示没有任何引号的 json 文件
【发布时间】:2020-08-20 18:09:48
【问题描述】:

我有一个经过验证的 json 文件,它将在 Vim 中不带任何引号显示。只有在可视模式下才能正确显示 json 文件。

我试过禁用 eslint、jshint、youcompleteme

OS X 麦克维姆 7.4 终端中的 Vim 7.4

【问题讨论】:

  • 可能是您的插件之一?你最近有没有添加任何新插件?
  • :verbose set conceallevel?
  • 你在使用任何 json 插件吗?例如github.com/elzr/vim-json。你能试试用vim -u NONE 来打开vim 吗?
  • 谢谢你们。你的 cmets 带领我走上正确的道路
  • 您找到解决方法了吗?我现在知道的唯一选择就是在编辑 json 文件时手动运行setlocal conceallevel=0。你知道有什么更好的吗?

标签: javascript json vim


【解决方案1】:

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

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

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

:verbose set conceallevel? concealcursor?

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

【讨论】:

  • 我发现罪魁祸首是一个名为 indentLine 的插件。它已将隐藏级别从默认值 0 更改为 0
【解决方案2】:

除了当前接受的答案之外,您可以通过在 .vimrc 中设置以下选项来专门针对 JSON 禁用该行为:

" Disable quote concealing in JSON files
let g:vim_json_conceal=0

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

【讨论】:

  • 我认为这不是 vim-json 插件的正确变量。 github.com/elzr/vim-json/commit/…
  • 这对我有帮助
  • @user8162 vim 的内置 json 突出显示使用 g:vim_json_conceal。
【解决方案3】:

就像mentioned 一样,可以检查是哪个插件导致隐藏级别增加:

:verbose set conceallevel?

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

let g:vim_json_syntax_conceal = 0

如果隐藏是由indentLine Plugin引起的:

let g:indentLine_setConceal = 0

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

autocmd Filetype json
  \ let g:indentLine_setConceal = 0 |
  \ let g:vim_json_syntax_conceal = 0

【讨论】:

  • 如果我将let g:indentLine_setConceal = 0 用于indentLine 插件,它就不再起作用了。引自它的自述文件:“您可以自定义这些设置,但如果隐藏级别未设置为 1 或 2,插件将无法运行。” :(
【解决方案4】:

我觉得这很烦人,因为作为引号的“跳转”行是隐藏的和未隐藏的。

设置 hidelevel=1 将 " 替换为空格(而不是隐藏它们),这会停止跳转,同时仍使 json 更具可读性。

【讨论】:

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