我读到 b 就像 e 的反面,即 b 做的事情是向后做的。
因此,如果我在单词上按 d e 并且光标位于单词的第一个字母上,则会删除整个单词。太棒了!
但是如果我在一个单词上按 d b 并且光标在单词的最后一个字母上,它会删除整个单词,除了光标所在的字母好了!
我知道在使用 b 时我可以移动一个字符,但我想保持一致。也许有人可以告诉我为什么 b 表现得像这样。
答案 0 :(得分:9)
b 与 e 不同,因为 b 是独占运动,而 e 是包含。来自:help e
& :help b
:
向后
e
前往单词[count]
包含的结尾。不要停在一条空行。
b
[count]
字。 独家动议。
来自:help exclusive
:
角色动作包含或包含。包容性时 动作的开始和结束位置包含在 操作。独占时,最后一个字符朝向结尾 缓冲区不包括在内。线性运动总是包括开始和 结束位置。
答案 1 :(得分:6)
vim光标是一个非常恶心的东西,设计很差,模仿终端的块光标。光标位置实际上位于块的开始/左侧,因此如果块在k
中的“bark
”并且您 d b < / kbd>您实际上是从r
删除到b
。
幸运的是,you can change the cursor是合理的
答案 2 :(得分:1)
您应该查看:help text-objects
:它允许您将命令应用于智能对象,如单词,句子或段落。
对于删除单词,无论光标位置如何,都应使用 d i w 。
答案 3 :(得分:0)
删除一个单词 d a w 。
删除光标下的单词和左侧的空格,将光标留在上一个单词的末尾。这是一个可重复的变化。在VIM中,您可以使用重复。
$ |然后是非 e
d a w |然后有 s
。 |然后再 e
答案 4 :(得分:0)
最终使用 v
在向后运动中使用视觉模式。
" Backward motion, inclusive the current cursor.
onoremap b vb
onoremap F vF
onoremap T vT
这是按预期工作的,对于我的典型用途来说已经足够了。相关文章: https://jdhao.github.io/2019/05/18/nvim_exclusive_inclusive_motion/