在 vim 中,向后搜索匹配的大括号/括号

Kev*_*vin 12 vim keyboard-shortcuts

正如你们大多数人可能知道的那样,您可以使用%在线上向前搜索以找到下一个配对的括号/括号/括号并移动到其匹配的伙伴:

|a|rray[index] = value;
" |e| is the cursor; hit %:
array[index|]| = value;
Run Code Online (Sandbox Code Playgroud)

我希望有一个类似的键可以在线上向后搜索,例如:

array[index] = value|;|
" |;| is the cursor again, hit the key I'm looking for:
array|[|index] = value;
Run Code Online (Sandbox Code Playgroud)

大多数 vim 命令都有向后和向前,所以似乎应该这样做。它没有合作伙伴吗?如果是这样,那是因为一旦出现配对的角色上,他们就会表现得一样吗?

Mei*_*Mei 6

如果您真的想向后搜索常见的匹配字符,可以使用以下vim特定命令之一:

  • [(...(转到上一个未匹配的(字符)
  • [{...(转到上一个未匹配的{字符)

这两个命令具有匹配的转发伙伴:

  • ])...(转到下一个不匹配的)字符)
  • ]}...(转到下一个不匹配的}字符)

#ifdef对于 C 注释,还有其他类似的命令。

您可以vim使用命令在 in 中找到更多信息:help %


Ric*_*way 5

% 找到匹配的括号。因此,如果您在 ( 或 { 它将向前搜索。

如果您在 } 或 ) 上,它将向后搜索。

% 没有方向性,它只是找到匹配的括号。