如何在vim中跳转到特定字符?

219

如何在vim中跳转到下一个字符X?

我经常使用dt:ct:等命令,以删除/更改直到冒号(或其他某个字符)为止的所有内容。

是否有一种简短的组合键,可以将光标位置直接移动到该字符上?


11
好的,下面是您需要翻译的内容:http://www.viemu.com/vi-vim-cheat-sheet.gif这是一张Vi和Vim编辑器的速查表。它展示了许多在Vi和Vim中使用的命令和快捷键,可以帮助用户更快、更高效地操作文本。 - Sam Brinck
12
如果只有前两个部分回答是同一个,并且另外包含以下信息:未提及的T将跳到左侧第一个所需字符之后,我可以确认;,重复器适用于所有的f/F/t/T - underscore_d
4个回答

393
您可以输入 f<字符> 将光标移到下一个字符,而输入 F<字符> 则会移到上一个字符。

140
您也可以使用分号来重复该操作,并使用逗号,在相反方向上重复该操作。 - Rsh
16
对我来说,这似乎只能在同一行上匹配才有效。 - Jpaji Rajnish
14
可以的。使用 /<字符> 来匹配任何位置上的字符。 - Lars Kotthoff
1
似乎只有在光标所在的行上使用f<character>(以及;和,字符来重复命令)才有效。是否有办法使其在整个文件中起作用? - Aluthren
在这种情况下,我会使用搜索功能;请参见上面的评论。 - Lars Kotthoff
1
@Rsh,你用逗号救了我的命,有时我会过于热情地跳过去,从未知道我可以回来。 - Adam

78

tf也可以不用命令,使用f:移动到冒号后,使用t:移动到冒号前。


4
有没有办法移动到冒号后面? - james
@james 如果你想要移动到冒号后面的符号,你可以使用 fSYMBOL。如果你想要编辑冒号后面的文本,你可以使用 f:a - Ilay

11
如果您使用/搜索该字符,然后按n键移动到下一个出现位置。

我在想,一旦找到字符后如何撤销此查找。所有匹配的字符似乎仍然突出显示在当前缓冲区中。 - newswim
1
@newswim,:nohl - iamarkadyt
你也可以搜索其他内容(例如一堆不匹配的垃圾),以更改突出显示的搜索字符串。还有:set invhls,用于切换高亮开关(我将其映射为快捷键以进行快速切换)。 - FazJaxton

3
也许你只是在寻找一个纯Vim组合,但是EasyMotion这个插件值得一试。希望有所帮助。 :)

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