发布于 2026-01-06 3 阅读
0

3 个 Vim 命令,助您在括号间实现极速导航 ⚡

3 个 Vim 命令,助您在括号间实现极速导航 ⚡

程序文件中经常会有很多括号。因此,高效地在括号间导航对于整体开发效率至关重要。我将向您介绍三种命令,它们可以让您在括号间快速导航!

1.%

我们先来看一个例子(箭头指向光标位置):

( example )
Enter fullscreen mode Exit fullscreen mode

%

( example )
Enter fullscreen mode Exit fullscreen mode

%再次按下:

( example )
Enter fullscreen mode Exit fullscreen mode

这表明它会%在匹配的括号之间跳转。然而,实际行为远不止于此。它会找到光标之后或光标下方的%下一项,并跳转到与其匹配的项。

%它不仅适用于(),也适用于:

  • 配对:()[]{}(可通过选项更改'matchpairs'
  • C 风格的注释:/* */
  • HTML标签:<div></div>

需要特别注意的是,重点在于光标之后或光标之下,这意味着即使括号不在光标之下,你也可以使用它。

例子:

some text (( example )) some text
Enter fullscreen mode Exit fullscreen mode

假设你想去最后一个地方。你最初可能会想到按以下步骤)操作:f(%

f(

some text (( example )) some text
Enter fullscreen mode Exit fullscreen mode

%

some text (( example )) some text
Enter fullscreen mode Exit fullscreen mode

然而,这f(是不必要的。您只需使用即可实现相同的导航效果%

这是因为%底层运行着类似这样的程序:

  1. 查找光标之后或光标下的第一个数字对(
  2. 跳转到它的匹配项,即)

当括号不在光标下方时,使用起来可能不太直观%,但熟悉之后,你就能用它实现一些神奇的操作!

2.[([{

  • [(跳回第一个未匹配项。(
  • [{跳回第一个未匹配项。{

例子:

{

  example

  text
}
Enter fullscreen mode Exit fullscreen mode

[{

{
  example

  text

}
Enter fullscreen mode Exit fullscreen mode

除了[(和 之外[{,还有])]}

  • ])跃升至无与伦比)
  • ]}跃升至无与伦比}

我们来看一个实际例子。假设你正在一个大型函数内部进行导航:

function example() {
  const sum = 0;
   
  for (let i = 0; i < 10; i++) {
    sum += i;
  }

  // some other operation, which takes many lines
  // ...

  return sum;
}
Enter fullscreen mode Exit fullscreen mode

假设你想跳转到}该函数的结束位置。有几种方法可以做到这一点:

  1. 使用相对跳转(例如直接12j跳转到目标位置)可以有效解决这个问题}
    这种方法适用于较小的函数。但是,在本例中,由于函数过大,最后一行代码超出了屏幕范围,因此这种方法行不通。

  2. 用于/}搜索}
    如果函数内部没有其他元素,这可能有效}。但是,在示例中,还有其他元素},您需要n多次按 键才能找到最后一个元素}

  3. 使用方法]}
    最有效的方法是使用]},它可以直接带你到函数的结尾,}而无需计算行数或重复搜索。

3.][[]

  • ][:跳转到} 第一列中的下一个。
  • []:向后跳转到} 第一列中的下一个。

例子:

{
↑ example
}

{
  {
    example
  }
}

{
  example
}
Enter fullscreen mode Exit fullscreen mode

][

{
  example
}
{
  {
    example
  }
}

{
  example
}
Enter fullscreen mode Exit fullscreen mode

][再次按下:

{
  example
}

{
  {
    example
  }
}
{
  example
}
Enter fullscreen mode Exit fullscreen mode

][再次按下:

{
  example
}

{
  {
    example
  }
}

{
  example
}
Enter fullscreen mode Exit fullscreen mode

这在处理包含多个函数的文档时非常有用。在大多数编程语言中,函数的结尾位于}行首(第一列)。您可以使用 `\ ][n` 跳转到下一个函数的结尾,[]使用 `\n` 跳转到上一个函数的结尾。

还有:

  • ]]:跳转到{第一列的下一个。
  • [[:向后跳转到{第一列的下一个。

虽然实际上{第一列的字符并不常用。我个人也很少遇到需要用到它们的情况。如果您能想到哪些场景]][[特别需要它们,请在下方评论区分享!

结论

总之,掌握 Vim 命令,例如%`\t`、 `\t` [([{`\t`、` ][\t` 和[]`\t`,可以显著提高在编程文件中导航的效率。每个命令在不同的情况下都有其独特的优势,使我们能够精准、轻松地浏览代码!

文章来源:https://dev.to/m4xshen/3-vim-commands-for-blazingly-fast-navigation- Between-brackets-55kc