Vim

使用 ctrl+c 而不是 esc 退出插入模式會破壞 vi 中的任何內容嗎?

  • February 15, 2022

使用 vi 時,您可以使用Ctrl+C而不是更傳統的Esc. 是否存在不希望使用前者而不是後者的情況?除了最佳實踐之外,它會破壞其他任何東西嗎?

Ctrl-C並且在大多數模式下Esc都不相同vivim包括插入模式。不同之處在於Esc觸發縮寫,而Ctrl-c不會觸發。這對您是否重要取決於您或您使用的任何外掛是否使用縮寫。


請注意Esc. Ctrl-C_ 來自同一站點的另一個範例是退出塊插入模式時(不在)。vim``vi

如果您指的是vim,則略有不同。CTRL-C不檢查縮寫,也不觸發InsertLeave事件。因此,如果您的外掛定義了任何autocmd依賴於 的語句InsertLeave,它們將不會被觸發。

從官方文件http://vimhelp.appspot.com/insert.txt.html

<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode.  Finish
               abbreviation.

CTRL-C          Quit insert mode, go back to Normal mode.  Do not check for
               abbreviations.  Does not trigger the InsertLeave autocommand
               event.

CTRL-C您可以為to定義一個映射<esc>,然後它將觸發InsertLeave

引用自:https://unix.stackexchange.com/questions/53633