我在 vim 8.2、vim 9 和 nvim 0.10.2 中发现了两个奇怪的行为omap
。它可能适用于所有运算符(至少d
,,,我已经测试过了),但我将在下面选择一个例子y
。c
d
用 表示行尾␊
。
案例 1
缓冲区是
␊
abc␊
光标位于b
。
使用 时dge
,除了 之外,缓冲区会被清除,c
这并不奇怪。但是,使用d2ge
(或 ,2dge
相当于 ,d3ge
,d4ge
等),光标会移动到第一行的开头,并且不会删除任何内容(或对于运算符c
,我们不会处于插入模式)!
案例 2
缓冲区是
abc␊
光标位于a
。使用db
,没有任何变化。这是因为 不b
包括。但是,使用dge
,即包括 ,同样没有任何变化!
我尝试在手册中查找,但无济于事。有人可以解释这种行为吗,希望可以参考 vim 手册?非常感谢!
为什么这对我有用:我正在开发一个vim 插件,将 vim单词移动扩展到没有单词边界的语言,比如中文。一个重要特性是与 ASCII 文本上的 vim 兼容。因此,我需要了解 vim/nvim 中的此类行为细节。