如何在带有 VIM 扩展的 VSCode 中将光标从其主体移动到 C++ 函数方法的名称

问题描述

我正在开发一些带有 VSCode+VIM 扩展的 C++ 代码。有时我需要在阅读代码时这样做:假设我在一个函数中,我想知道是谁调用了它。第一步是将光标直接移动到函数名称下,这样我就可以调用一些按键来显示引用。

我当前使用的是按“[”键两次,这将带我到函数的左括号。由于我必须遵循一些编码标准,典型的场景是这样的:

ReturnType ClassName::FunctionName(
    ParamType1 param1,ParamType2 param2,ParamType3 param3)
{ // <-- Cursor here
    ......

}

然后我需要按“k”几次以将光标移动到“ReturnType”下,具体取决于那里有多少参数。接下来,我仍然需要按“w”3 次才能最终将光标从“ReturnType”移动到“FunctionName”。

如您所见,这里有点痛苦。我已经尝试过使用 VSCode VIM 扩展的简单运动方法,这让我的生活更轻松一些,但我正在寻找更好的方法

任何 VIM 技巧或 VSCode 扩展都可以很好地做到这一点? 任何帮助将不胜感激,谢谢!

解决方法

为了避免多次按 k,可以利用 ) 就在上一行这一事实,并使用 % 转到匹配的 (。完整的键序列是[[b%b

但是,如果括号之间没有任何内容,第一个 b 将转到 (。可以改用 [[ge%b

如果 ){ 之间有一些东西(例如 const 限定符)[[?)<cr>%b 会起作用(这个解决方案很复杂,也许只在键绑定中有用? )

[[?(<cr>b 也可以工作,只要没有包含左括号的参数(例如在 FunctionName(int (*function_pointer)(int,int)) { ... } 中)