相对于Vim中的行尾移动

时间:2015-01-09 16:47:03

标签: vim

想象一下,我有这样一句话:

Block chain, the decentralised public ledger that records transactions on the bitcoin network.

如果我的光标位于第一个单词的末尾,是否有办法相对于句子的末尾而不是从光标位置移动?想想一下,右手边的第一个c是我想去的地方,有没有办法到达而不是先走到最后并使用F到达c }($Fc)。

2 个答案:

答案 0 :(得分:1)

如果您认为$Fc 3次击键太多......

operator + target char已经有2招。 我们可以动态捕获目标char。但是为了使它成为2招,我们必须划出正常的模式键,我不知道你不使用哪一个,我在键盘上找不到一个,所以例如我使用{{ 1}}你可以随意改变它。

此映射允许您将<F6>按到该位置,当然,<F6>c可以是任何字符。

c

如果目标字符即(nnoremap <expr> <space> '$F'. nr2char(getchar()) )处于EOL状态,则无法工作。那么你可以做进一步检查,例如如果您认为确实有必要,请编写自己的功能。

我个人认为这不值得。只是习惯了c

答案 1 :(得分:1)

是的,Vim有(丰富的)动作相对于当前(光标)位置移动:lwf。您可以通过多种动作轻松重新定位光标:^0$gm。结合使用,这意味着只需几次按键即可到达几乎任何地方,并且可以很容易地记住每一个。

鉴于可用键的限制(并且开箱即用的Vim已经使用了大部分键!),并且限制了你可以记住的内容,我认为这是一个完美的平衡。有鉴于此,我认为$Fc无需担心(只需与其他编辑进行比较!)

如果特定动作效率低下困扰您,您可以随时编写自定义映射(并指定少数可用键中的一个),但这不能很好地扩展。