如何在Vim中将光标移动到当前行中的特定字

如何在Vim中将光标移动到当前行中的特定字,vim,Vim,假设我们目前在这一行代码中: readonly L|a|zy<ICountryRepository> countryRepo; readonly L|a|zy countryRepo; 光标位于字母“a”的位置,如两个“|”符号之间的代码所示 现在我想将光标移动到单词countryRepo的字母y,如何使用最小的按键笔划 (目前我在正常模式下使用的键序列是fyfyfy,有点愚蠢)如果你知道这是第四个y,你可以这样做 4fy $Fy 如果您知道这是行中最后一个y,您可以这样做

假设我们目前在这一行代码中:

readonly L|a|zy<ICountryRepository> countryRepo;
readonly L|a|zy countryRepo;
光标位于字母“a”的位置,如两个“|”符号之间的代码所示

现在我想将光标移动到单词
countryRepo
的字母
y
,如何使用最小的按键笔划


(目前我在正常模式下使用的键序列是
fyfyfy
,有点愚蠢)

如果你知道这是第四个
y
,你可以这样做

4fy
$Fy
如果您知道这是行中最后一个
y
,您可以这样做

4fy
$Fy
如果你不知道它在哪个位置,你仍然可以这样做

fy;;;

在这种情况下,我会使用

W
移动到countryRepo,然后

fy
我能想到:

4fy 
但只有当你是一个奇怪的机器人时,你才应该这么做

/co<cr>fy
向前走一个单词,然后找到y

f>fy
我会这样做的。取决于我脑海中弹出的内容

您应该查看插件,它有助于任意移动

编辑:


easymotion在这里毫无价值,它对于跳转到更远的目标更有用

如果您有
vim测量动作

您可以执行
t
,然后搜索字母
y
。但对于同一行的字母来说,速度并不是那么快。真正的好处是当您跳转到整个文件时。

我会这样做

tR;

或许

Wfy
使用


在您的情况下,
e
,然后相应的按键(在本例中为
b
)会将光标移到第二个y上。就我个人而言,我使用
作为easymotion触发器,因此对我来说只需3次按键。主要优点是您不需要猜测或计算。

使用/进行搜索,然后键入您的单词并按Enter键


但是,如果您想跳转到下一个单词,只需按n

您是否尝试过
$Fy
?www.vim.org/script.php?script_id=152是一个很好的插件,可以在vim代码中显示标记是Vim中的默认重复移动命令,假设您没有noremap
(常见做法)。可能有10多种方法可以做到这一点,并且每种情况都是独特的。有时,想用最快的方法(或最少的击键次数)做某事比用愚蠢的方法做要花更长的时间。可以归结为练习各种方法和您自己的个人喜好。光标不在
L
a
之间,而是在
L
a
上。是否将其移动到Vi和Vim堆栈交换?您也可以在fy4执行
也就是说,虽然答案正确,但问题需要更好的解决方案。在Vim中,必须有更好的方法来做到这一点,因为计算当前行中的字母是不实际的,因为人们可能会计算错误,而且训练有素的读者阅读的不是字母而是整个单词。