Vim匹配花括号与字符串内容混淆

时间:2018-07-19 15:57:00

标签: vim

有时候我有这样的代码:

json_encode([
    'token' => 'as!"·)#|@∞"'
]);

如果将光标放在第一个[上,然后按%,将光标移动到匹配的]。但是,如果我将光标放在第一个((在json_encode的左侧)上,然后按%,vim就会感到困惑,并且无法获取匹配的字符。

Vim认为匹配的字符是第二行字符串中的)

这类内容是特定于语言的,因此,有什么方法可以让vim知道如何处理特定的语言特征?

1 个答案:

答案 0 :(得分:1)

可以使用%(vi兼容性选项)控制cpoptions命令的匹配行为。如果%中的cpoptions不是 ,vim应该忽略双引号或单引号中的括号。

您可以使用以下方法检查cpoptions的值:

:set cpoptions?

如果%字符位于cpoptions中,则可以使用以下命令将其删除:

:set cpoptions-=%