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

Posted

技术标签:

【中文标题】vim 重复查找下一个字符 \'x\'【英文标题】:vim repeat find next character 'x'vim 重复查找下一个字符 'x' 【发布时间】:2012-05-07 14:34:34 【问题描述】:

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

所以我必须再次f x,这有点烦人,因为有一个不错的按钮.,它确实重复了最后一个命令。那么有没有办法通过一个按钮来重复f x

【问题讨论】:

【参考方案1】:

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

【讨论】:

您不能为此使用. 有什么有用的理由吗?这是我期望的命令。 @DanielKaplan 将新的映射,即搜索字符(f;)映射到与重复编辑(.)不同的字符是有意义的。这使您可以快速搜索和更改搜索结果。如果你想用* 替换一些+,你可以这样做(跳过一些字符并替换其他字符):f+r*;.;;.;.;;;. 有没有办法重新映射这些命令?很多人用,作为leader。 @rk1 用 :let mapleader=" " 改变领导者(如果你想要一个空格) @DrEval 当然,但我想保持我的领导为, 并且仍然有反向搜索。无论如何,现在我是 vim-easymotion 的快乐用户。【参考方案2】:

自从我问这个问题以来已经过去了 - 现在我使用vim-easymotion,这使得; 的需求几乎没有必要。

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

【讨论】:

【参考方案3】:

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

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

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

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

这在与cmotion(change) 或dmotion(delete) 一起使用时非常有用。例如如果我们想更改或删除第三次出现的字符,我们可以这样做

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

【讨论】:

以上是关于vim 重复查找下一个字符 'x'的主要内容,如果未能解决你的问题,请参考以下文章

vim常用命令

Vim文档编辑

VIM

在vi或vim上查找字符串

Vim快速查找

vim 一些操作