如何在Vim中从右到左移动到某个字符

时间:2013-10-09 00:43:47

标签: vim

This is a sentence

如果光标位于s的{​​{1}},我想将光标移到This的{​​{1}}上

我可以做 $ F n

但是这不能与n

等其他命令结合使用

例如,如果光标位于sentence的{​​{1}}上,则删除光标与delete的{​​{1}}之间的所有内容

d $ F n 不起作用

任何人都知道如何做到这一点?

7 个答案:

答案 0 :(得分:2)

假设您在“{1}}和”句子“中的第二个s之间删除字词时遇到问题。你可以通过

来做到这一点
n

正如@kev所说,d2fn 是一个不错的选择,easymotion你可以用更直观的方式做到这一点,如

easymotion

以上命令将突出显示该行中的d<Leader><Leader>fn 并让您选择。

答案 1 :(得分:1)

Vim插件easymotion可以为您提供帮助。

答案 2 :(得分:1)

正如其他人所说,您可以将搜索命令/d命令结合使用,以删除模式匹配。

但是,您也可以使用搜索偏移将光标放在您想要的任何位置与该搜索相关。有关详细信息,请参阅:help search-offset,但在您的情况下:

d/senten/e将删除“句子”中的第二个“n”。

您也可以使用d/sentence/e-2执行相同的操作,但限制匹配更多。

这与增量搜索和搜索突出显示相结合非常强大,因为在您点击<Enter>完成命令或<Esc>或{{<C-C>之前,您可以确切地看到您正在执行的操作。 1}}取消整个事情。

答案 3 :(得分:1)

您可以使用视觉模式:v$Fnd

答案 4 :(得分:1)

我的JumpToLastOccurrence plugin将内置f / F / t / T动作与移动到行中最后一次{char}的对应物进行扩展。您的示例是d,fn

答案 5 :(得分:1)

我的Vim插件ft_improved也可以提供帮助。你只需继续输入,直到匹配是唯一的。

答案 6 :(得分:0)

我不知道这里引用了“句子”中的哪个“n”,但您确实可以使用d来执行此操作。只需将其与搜索(/):

结合使用即可
d/n

或者,如果你想删除“句子”中的第二个“n”,你可以使搜索模式更具体一个字符:

d/nc