Vim使用%查找不正确匹配的括号

6

我正在尝试学习VIM,但我注意到当我尝试使用%命令去匹配括号时,有时候VIM能够正确地找到匹配的括号,但有时候却完全错了。是否有人遇到过这个问题并有解决方案呢?


5
请提供一些说明失败的示例文本。 - anon
4个回答

13
这是因为:
  1. 你可能在某个地方少了一个括号或花括号,导致语法错误。
  2. 你的 cpoptions 参数中有一个值阻止了半智能括号匹配。请查看 :help cpoptions:help %
  3. 你的需求太过复杂,无法用普通的 Vim 匹配来处理。尝试安装 matchit 插件,这可能会有所帮助。常见问题包括括号位于注释或正则表达式内部。

1
有第四个不明显的选项:我的注释中出现了“语法错误”。 - ldog
1
注释应该包含在#3中。我应该更明确,因为在注释中使用大括号是我写#3时考虑到的常见情况。 - JSBձոգչ

5

显然,即使在注释中,vim也会解析括号,在我的情况下发生了这种情况,我有一个非完整的括号对被注释掉了,这意味着vim无法正确找到括号对,但编译器没有问题,因此让我感到困惑。


是的,当我遇到这个问题时,注释和正则表达式通常是罪魁祸首。这是由我的列表中的#3暗示的。 - JSBձոգչ

2
matchit插件如果我早点找到它的话,能够为我节省数小时的挫败感。
将以下命令复制到你的终端中,有少许可能正确设置该插件: wget http://www.vim.org/scripts/download_script.php?src_id=8196; unzip download_script.php?src_id=8196; echo >> ~/.vimrc; echo -ne "source " >> ~/.vimrc; pwd | tr -d '\n' >> ~/.vimrc; echo -ne "/plugin/matchit.vim" >> ~/.vimrc; rm download_script.php\?src_id\=8196 然后重新加载你的vimrc: :source ~/.vimrc

对我来说完美运行(现在是2015年)。 - user763410

0

没有,这可能意味着您缺少括号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接