这个问题引发了我之前的一个问题: Vim's '(insert) VISUAL' mode?
在那个问题中,我询问了“ VISUAL
”模式与“ (insert) VISUAL
”模式,这是您直接从插入模式进入视觉模式的地方。我发现了一个根据视觉模式的“子类型”表现不同的映射,我不明白为什么:
vnoremap x <Esc>jjj
vnoremap <A-[> <C-G>ugv
第一个映射说明了 Vim 如何不遗余力地使映射行为一致:x从 " VISUAL
" 模式按下和x从 " " 模式按下(insert) VISUAL
都会将光标向下移动 3 行。后者不退出插入模式并进入三个j
's。因此<Esc>
,即使在映射之外它的行为与这两种模式不同,它的行为也不会因模式而异。
第二个映射说明了一些映射如何表现不一致。如果您突出显示一个单词并按ALT+ ,则如果从“ ”模式完成,[则该单词将被替换,但如果从“”模式完成,则不会发生任何事情。这大概是因为 Vim 正在执行'undo' 和 'reselect-visual' 的正常模式命令。 ugv
VISUAL
(insert) VISUAL
ugv
这是一个奇怪的不一致。这是我在调试映射时遇到的一个最小示例,并且想知道它为什么会这样工作。