vim重复找到下一个字符'x'

eps*_*lbe 115 vim repeat

我经常在vim中导航f x以找到下一个字符'x',但忽略在我要编辑的单词和开始光标位置之间有一个单词(或更多单词)包含'x'.

所以我必须f x再次,这有点烦人,因为有这个漂亮的按钮.,它会重复最后一个命令.那么有没有办法f x通过单按按钮重复.

Jer*_*ock 215

重复a的命令f;(分号); ,(逗号)反转搜索的方向.

  • 有什么有用的理由不能为此使用`.`吗?那是我期望工作的命令。 (3认同)
  • @DanielKaplan将novement,即搜索字符(`f`和`;`)映射到与重复编辑(`.`)不同的字符是有意义的.这使您可以快速搜索和更改搜索结果.如果你想用`*`替换一行中的'+',你可以做这样的事情(跳过一些字符并替换其他字符):`f + r*;.;;.;.;;;. (2认同)
  • 有没有办法重新映射这些命令?很多人将`,`用作领导者。 (2认同)

eps*_*lbe 16

自从我提出这个问题以来已经过去了 - 现在我使用了vim-easymotion,这使得;几乎不需要.

这个插件允许直接跳转到某个字母 - 触发插件会使所有字母变为灰色,除了屏幕上的所有"x" - 并且这些字母被红色字母替换,您可以按这些字母直接跳转到它.

easymotion在使用中


Pra*_*een 5

要添加@Jeremiah Willcock 答案,我们可以将 count 添加到f命令以转到第 n 次出现[count]f{char}。例如

2fx=> 转到第二次出现的x[如果可用]

类似地,我们可以使用相同的计数器来计算;,。例如

2;=> 转到上次搜索的第二次出现[如果可用]
2,=> 转到反向上次搜索的第二次出现[如果可用]

c{motion}当与(更改)或d{motion}(删除)一起使用时,这非常有用。例如
,如果我们想更改或删除第三次出现的字符,我们可以这样做

c3fx=> 更改到第 3 次出现的字符x(包括)
d3fx=> 删除到第 3 次出现的字符x(包括)