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

14

假设我们现在处于这行代码中:

readonly L|a|zy<ICountryRepository> countryRepo;

如果光标位于字符"a"的位置,如两个"|"符号之间所示。

现在我想将光标移动到单词“countryRepo”的字母y,最少需要哪些按键?

(目前我在正常模式下使用fyfyfyfy这个按键序列......有点愚蠢)


2
你试过 $Fy 吗?www.vim.org/script.php?script_id=152 是一个很好的插件,可以在你的vim代码中显示标记。 - Alexander Oh
2
; 是 Vim 中默认的重复运动命令,假设你没有将 ; 映射为 :(常见做法)。 - Jose Elera
3
可能有10种以上的方法来完成它,每种情况都是独特的。有时候试图想出最快的方式来做某事(或者最少的按键数),比直接用“愚蠢”的方式做更费时间。关键在于练习各种方法,并根据个人喜好进行选择。 - Jason Down
2
光标不在 La 之间,它要么在 L 上,要么在 a 上。 - romainl
这个问题应该移动到 Vi 和 Vim Stack Exchange 上吗? - QuantumFool
7个回答

19

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

4fy

如果你知道这是这行中最后一个y,那么你可以执行

$Fy

如果您不知道它在哪个位置,仍然可以执行

fy;;;

你也可以执行 fy4; - Jose Elera
1
这意味着虽然是正确的答案,但需要更好的解决方案。在Vim中必须有更好的方法来处理这个问题,因为在当前行中计算字母既不实用,也可能会出错,而且训练有素的读者并不是阅读字母而是整个单词 - gustafbstrom

5
在这种情况下,我会使用
W

移动到countryRepo,然后执行以下操作:

fy

5
我可以想到的有:
4fy 

但是如果你是某个奇怪的机器人,你才应该这样做。
/co<cr>fy

比你的解决方案少一个字符,但更加简单易懂。
Wfy

向前移动一个单词,然后找到y。
f>fy

我会做类似这样的事情。 这取决于我脑海中浮现的想法。

你应该研究一下easymotion插件,它有助于任意移动。

编辑:

easymotion在这里相当无用,更适合跳转到更远的目标。


3
如果你安装了vim-easymotion,可以使用<leader><leader>t命令,并搜索字母y。但是对于同一行的字母来说,速度并不是很快。真正的优势在于跳转到整个文件中的位置。 https://github.com/Lokaltog/vim-easymotion

2
我会做。
tR;

或者

WtR

也许
Wfy

2
使用EasyMotion
在您的情况下,键入<Leader><Leader>e,然后按相应的按键(在本例中为b),将光标移动到第二个y上。个人建议使用<Leader>作为easymotion触发器,这样对我来说只需3个按键。主要优点是您不需要猜测或计算。

2

使用/进行搜索,然后输入您要查找的单词并按Enter键。

但是,如果您想跳到下一个单词,只需按n键即可。


哇,多么简单的解决方案!谢谢! - MAChitgarha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接