使用 Ctrl-C 退出块插入模式

Sop*_*ert 8 vim

在 vim 中,如果您处于块插入模式 ( Ctrl-V, Shift-I) 并使用Ctrl-C( 而不是) 退出Esc,它将取消块编辑(并且只编辑第一行)。

为什么是这样?在几乎所有其他上下文中,Ctrl-CEsc是同义词。(理想情况下有一种方法可以解决这个问题——我现在已经习惯了Ctrl-C,如果我不得不重新学习,那将是一种耻辱......)

jw0*_*013 9

Ctrl-c并且Esc不能保证是同义词,并且经常不同。例如,在插入模式下,Esc将触发缩写并进入普通模式,而Ctrl-c不会触发缩写或InsertLeave自动命令并直接进入普通模式。另一个例子是在旧的vi命令行模式下,Esc实际上会像点击Enter. Vim 故意改变了这一点,因为这种行为被认为是不直观和令人惊讶的,但您仍然可以通过添加x'cpoptions'.

至于分块视觉操作符,blockwise-operators帮助标签有以下文档:

Visual-block Insert                     *v_b_I*
With a blockwise selection, I{string}<ESC> will insert {string} at the start
of block on every line of the block, provided that the line extends into the
block.  Thus lines that are short will remain unmodified.  TABs are split to
retain visual columns.
Run Code Online (Sandbox Code Playgroud)

请注意, onlyEsc被提及,而不是Ctrl-c

所以,不,Ctrl-c并且Esc不等价。消除自己的误解从来都不是一件可耻的事情。一旦你意识到这一点,你就可以决定下一步做什么。显而易见的选择是了解差异并使用正确的键,或者决定您不需要其中一个键的功能并重新映射它以匹配另一个。

  • 明白了。现在我会`vnoremap &lt;Cc&gt; &lt;Esc&gt;` 但我会记住你所说的。 (4认同)