Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
%VIM键命令_Vim - Fatal编程技术网

%VIM键命令

%VIM键命令,vim,Vim,有没有办法让%在vim中找到下一个([{或其他什么,即使它不在同一行上 例如: int main(int argc, char ** argv) { #Your cursor is somewhere in this comment, I want #it to get to the ( after printf printf("Hello there.\n"); } 这让人费解……对我来说,%找到了任何{[(无论距离匹配有多少行。我在我的.vimrc中没有看到任

有没有办法让%在vim中找到下一个([{或其他什么,即使它不在同一行上

例如:

int main(int argc, char ** argv) {
     #Your cursor is somewhere in this comment, I want
     #it to get to the ( after printf
     printf("Hello there.\n");
}

这让人费解……对我来说,%找到了任何{[(无论距离匹配有多少行。我在我的.vimrc中没有看到任何会立即改变这种行为的内容。

如果你想在后续行中找到大括号,而不需要插件,只需进入正常模式并键入:

/{ [enter]
其中{是您要查找的支架类型

然后,您可以使用n和n浏览它们


要映射F12键以打开和关闭搜索突出显示,如果我理解正确,您试图让它在下一行找到打开的大括号。如果您抱怨除非整行都是一行,否则它找不到关闭的大括号,我不知道这为什么不起作用

在任何情况下,如果你想%拥有超级能力,就从这个开始。它包含在正态分布中,所以你不必下载它。只需添加

:runtime macros/matchit.vim

对于你的.vimrc,%也会知道很多新的技巧(如何匹配平衡的XML标记if/then/end if语句,这些语句使用的是带有关键字的语言),等等。它不会直接解决你的请求,因为matchit使用了与正常情况相同的限制(它不是在光标处或光标之后开始的匹配,在同一行上)。但由于它可以使用正则表达式搜索作为匹配标记(而不仅仅是字符),因此应该可以对其进行配置,以便打开表达式。\n。{或者一些符合该标准的东西,但在更下面的一条线上拿起一个大括号。

看起来吉姆·伯格(Jim Burger)拥有它,但万一你真的问如何搜索这些东西:

/[{[(][输入]

这将找到这些符号中的下一个

顺便说一句:在这种情况下,vim足够聪明,可以弄清楚您想要什么,但您通常必须用“\”来避开方括号或圆括号。例如,要搜索下一个右括号,您可以键入(注意\]):


/[\]}][Enter]

这一点很好,但是高亮显示会让人讨厌,所以我希望有另一种选择。要关闭搜索高亮显示,请使用“:noh”作为临时修复,或“:set nohlsearch”作为会话修复,或使用“set nohlsearch”我喜欢突出显示我的搜索,但是如果我搜索文件中的每个{,我的屏幕会像泛光灯一样亮起。键入:noh将停止突出显示,直到下次搜索。