【发布时间】:2010-09-09 23:44:21
【问题描述】:
到目前为止,我学到的使用 vim 的最佳技巧之一是可以按 Ctrl+C 或 Ctrl+ [ 而不是 Esc 键。但是我使用的是德沃夏克键盘,所以 Ctrl+[ 对我来说也有点遥不可及,所以我主要使用 Ctrl+ C。现在我在某处读到这两个组合键实际上并不具有完全相同的行为,最好使用 Ctrl+[。到目前为止我还没有遇到任何问题,所以我想知道两者之间到底有什么区别?
【问题讨论】:
标签: vim
到目前为止,我学到的使用 vim 的最佳技巧之一是可以按 Ctrl+C 或 Ctrl+ [ 而不是 Esc 键。但是我使用的是德沃夏克键盘,所以 Ctrl+[ 对我来说也有点遥不可及,所以我主要使用 Ctrl+ C。现在我在某处读到这两个组合键实际上并不具有完全相同的行为,最好使用 Ctrl+[。到目前为止我还没有遇到任何问题,所以我想知道两者之间到底有什么区别?
【问题讨论】:
标签: vim
根据 Vim 的文档,Ctrl+C 不会检查缩写,也不会触发 InsertLeave 自动命令事件,而 Ctrl+ [ 可以。
一种选择是使用以下重新映射 Ctrl+C
inoremap <C-c> <Esc><Esc>
【讨论】:
inoremap <C-c> <Esc><Esc> 是有效语法,[...] 不是。
非常晚的答案,但我只是有同样的问题,并找到了一个有助于解释差异的实际示例,为什么不呢。
如果您选择一个可视块,然后用c 对其进行更改,或者用A 在其末尾添加一些内容,如果您随后使用<Esc> 退出,则相同的更改将发生在所有行上视觉块(非常有用!见:help v_b_A);如果您使用<C-c> 退出,则不会发生这种情况,只有一行得到更改。我可能没有意识到<C-c> 缺少其他类似的东西...
【讨论】:
Esc 键。
q: 来自正常模式或<C-f> 来自命令模式)。在该模式下,<C-[> 将退出插入/可视模式(如<Esc>),而<C-c> 将让您回到命令模式。
事实证明,<C-[> 与 Esc 完全相同,它们是相同的字符。因此,无需怀疑那里有什么不同。 :)
【讨论】: