繁体   English   中英

%VIM密钥命令

[英]% VIM Key Command

有没有办法让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");
}

如果你想在后续行上找到开口大括号,没有插件,只需进入普通模式并输入:

/{ [enter]

其中{是你寻找的支撑类型。

然后,您可以使用nN浏览它们。

要映射F12键以打开和关闭搜索突出显示,请使用此技巧。

如果我理解正确,你试图让它找到即使在下一行的开口支撑。 如果你抱怨它没有找到闭合支撑,除非整个东西是一条线,我不知道为什么那不起作用。

无论如何,如果你想让%有超级大国,那么matchit插件就是你的起点。 它包含在正态分发中,因此您不必下载它。 只需添加

:runtime macros/matchit.vim

对于你的.vimrc,%也会知道很多新的技巧(如果匹配balaced XML标签if / then / end if语句用那些带关键字的语言),等等。它不会直接解决你的请求,因为matchit使用与普通%相同的限制(它在同一行上的光标处或之后开始匹配)。 但是因为它可以使用正则表达式搜索作为匹配标记(而不仅仅是字符),所以应该可以配置它以便打开表达式。 \\ n。 {或者某些符合这个标准的东西,但是在一条线上再拿一个支撑。

那令人费解......对我来说,%找到匹配的任何{[(无论距离匹配多少行。我在.vimrc中看不到任何会改变这种行为的东西,随便。

看起来Jim Burger有它,但万一你实际上是在询问如何搜索这些东西:

/ [{[([] [Enter]

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

顺便说一句:在这种情况下,vim足够聪明,可以找出你想要的东西,但你经常需要用'\\'来逃避正方形或圆形支架。 例如,要搜索下一个右括号,您可以键入(注意\\]):

/ [\\]})] [回车]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM