【问题标题】:What is the difference between <C-C> and <C-[> in vim?vim 中的 <C-C> 和 <C-[> 有什么区别?
【发布时间】:2010-09-09 23:44:21
【问题描述】:

到目前为止,我学到的使用 vim 的最佳技巧之一是可以按 Ctrl+CCtrl+ [ 而不是 Esc 键。但是我使用的是德沃夏克键盘,所以 Ctrl+[ 对我来说也有点遥不可及,所以我主要使用 Ctrl+ C。现在我在某处读到这两个组合键实际上并不具有完全相同的行为,最好使用 Ctrl+[。到目前为止我还没有遇到任何问题,所以我想知道两者之间到底有什么区别?

【问题讨论】:

    标签: vim


    【解决方案1】:

    根据 Vim 的文档,Ctrl+C 不会检查缩写,也不会触发 InsertLeave 自动命令事件,而 Ctrl+ [ 可以。

    一种选择是使用以下重新映射 Ctrl+C

    inoremap <C-c> <Esc><Esc>
    

    【讨论】:

    • inoremap &lt;C-c&gt; &lt;Esc&gt;&lt;Esc&gt; 是有效语法,[...] 不是。
    • 说,为什么需要 2 次转义?
    • @doubleDown : 为了避免延迟... vim 等待 timeoutlen 毫秒等待另一个字符,以防万一存在与 esc 的映射
    【解决方案2】:

    非常晚的答案,但我只是有同样的问题,并找到了一个有助于解释差异的实际示例,为什么不呢。

    如果您选择一个可视块,然后用c 对其进行更改,或者用A 在其末尾添加一些内容,如果您随后使用&lt;Esc&gt; 退出,则相同的更改将发生在所有行上视觉块(非常有用!见:help v_b_A);如果您使用&lt;C-c&gt; 退出,则不会发生这种情况,只有一行得到更改。我可能没有意识到&lt;C-c&gt; 缺少其他类似的东西...

    【讨论】:

    • 是的,我刚刚注意到github.com/myusuf3/numbers.vim 依赖于Esc 键。
    • 另一个区别是当你在打开的命令窗口时(q: 来自正常模式或&lt;C-f&gt; 来自命令模式)。在该模式下,&lt;C-[&gt; 将退出插入/可视模式(如&lt;Esc&gt;),而&lt;C-c&gt; 将让您回到命令模式。
    【解决方案3】:

    事实证明,&lt;C-[&gt; 与 Esc 完全相同,它们是相同的字符。因此,无需怀疑那里有什么不同。 :)

    【讨论】:

    • 问题是询问 C-[ 和 C-C 之间的区别,不是 C-[ 和 Esc 之间的区别
    猜你喜欢
    • 1970-01-01
    • 2011-04-05
    • 2016-06-22
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2021-08-31
    相关资源
    最近更新 更多