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'的主要内容,如果未能解决你的问题,请参考以下文章