在 Vim 中相对于行尾移动
Move relative to the end of line in Vim
假设我有这样一个句子:
Block chain, the decentralised public ledger that records transactions on the bitcoin network.
如果我的光标在第一个单词的末尾,有没有办法相对于句子的末尾而不是从光标位置移动?想一想,右手边的第一个 c
是我想去的地方,有没有办法到达而不是先走到尽头然后使用 F
到达 c
($Fc
).
如果你觉得$Fc
3次击键太多......
运算符+目标字符已经有2笔画了。
我们可以动态捕获目标字符。但是为了让它变成 2 笔画,我们必须划掉一个普通模式键,我不知道你不用哪个,我的键盘上找不到,所以举个例子我用 <F6>
你可以随便改。
这个映射可以让你按<F6>c
到那个地方,当然c
可以是任何字符。
nnoremap <expr> <space> '$F'. nr2char(getchar())
如果目标字符,即 (c
) 处于 EOL,这将不起作用。那么你可以做进一步的检查,例如如果您认为确实有必要,请编写自己的函数来完成。
个人认为不值得。习惯 $Fx
.
是的,Vim 有(大量)相对于当前(光标)位置移动的运动:其中有 l
、w
、f
。您可以通过许多动作轻松地重新定位光标:^
、0
、$
、gm
。结合起来,这意味着您只需敲击几下键盘就可以到达几乎任何地方,并且可以很容易地记住每一个。
考虑到可用键的数量有限(开箱即用的 Vim 已经使用了其中的大部分!),以及您可以记住的内容有限,我认为这是一个完美的平衡。就此而言,我认为 $Fc
没什么好担心的(只是与其他编辑器进行比较!)
如果特定动作的低效率困扰着您,您始终可以编写自定义映射(并分配少数可用键之一),但这不能很好地扩展。
假设我有这样一个句子:
Block chain, the decentralised public ledger that records transactions on the bitcoin network.
如果我的光标在第一个单词的末尾,有没有办法相对于句子的末尾而不是从光标位置移动?想一想,右手边的第一个 c
是我想去的地方,有没有办法到达而不是先走到尽头然后使用 F
到达 c
($Fc
).
如果你觉得$Fc
3次击键太多......
运算符+目标字符已经有2笔画了。
我们可以动态捕获目标字符。但是为了让它变成 2 笔画,我们必须划掉一个普通模式键,我不知道你不用哪个,我的键盘上找不到,所以举个例子我用 <F6>
你可以随便改。
这个映射可以让你按<F6>c
到那个地方,当然c
可以是任何字符。
nnoremap <expr> <space> '$F'. nr2char(getchar())
如果目标字符,即 (c
) 处于 EOL,这将不起作用。那么你可以做进一步的检查,例如如果您认为确实有必要,请编写自己的函数来完成。
个人认为不值得。习惯 $Fx
.
是的,Vim 有(大量)相对于当前(光标)位置移动的运动:其中有 l
、w
、f
。您可以通过许多动作轻松地重新定位光标:^
、0
、$
、gm
。结合起来,这意味着您只需敲击几下键盘就可以到达几乎任何地方,并且可以很容易地记住每一个。
考虑到可用键的数量有限(开箱即用的 Vim 已经使用了其中的大部分!),以及您可以记住的内容有限,我认为这是一个完美的平衡。就此而言,我认为 $Fc
没什么好担心的(只是与其他编辑器进行比较!)
如果特定动作的低效率困扰着您,您始终可以编写自定义映射(并分配少数可用键之一),但这不能很好地扩展。