如何移动到 VI 中的下一个括号

问题描述 投票:0回答:6

是否有任何快捷方式可以移动到下一个括号。例如:

int func()
{

 if(true)
 {//this point

   for(int i=0;i<10;i++)
   {//need to jump from here to

    //blah blah blah

   }

 }
}

我可以使用

[[
移动到函数的开头,但不确定如何移动到下一个封闭的括号。感谢您提供任何信息...

c++ vim vi
6个回答
19
投票

想不出比

/{

更简单的事情了

[{
会去一个无与伦比的,但这不是你想要的。


18
投票

将光标放在一个括号上并按下百分比键。

同时设置 'showmatch' 选项使光标在您键入右括号时跳转到匹配的左括号。

添加这样的声明:

set matchpairs+=<:>

将尖括号添加到匹配对括号的标准列表中。


9
投票

对于下一个大括号做]},但在你的例子中你正在寻找前一个。在那种情况下尝试 [{.


1
投票

您将光标放在要查找匹配括号的左括号或右括号上,然后使用 %。这将引导您找到匹配的括号。


0
投票

总有/{

即搜索下一个开大括号


0
投票

您可以使用键

[
]
分别循环到上一个和下一个匹配的括号。以下是常见的键绑定:

  • [(
    - 上一个
    (
  • [{
    - 上一个
    {
  • [<
    - 上一个
    <

还有更多有趣的

  • [m
    - 以前的方法开始
  • [M
    - 之前的方法结束

下一条也一样:

  • ]}
    - 下一个
    }
  • ])
    - 下一个
    )
  • ]>
    - 下一个
    >

这种方法之所以更有效,是因为你可以在命令的同时指定计数例如:

使用组合

3[{
,我可以从第8行跳到第2行
{

1 int func()
2 { // @end
3
4 if(true)
5 {
6
7   for(int i=0;i<10;i++)
8   { // @start
9
10    //blah blah blah
11
12   }
13
14 }
15 }

要阅读有关方括号运动的更多信息,请在 vim 命令行中输入

:help [

© www.soinside.com 2019 - 2024. All rights reserved.