What is the difference between and in vim?

2020-02-08 16:17发布

One of the best tips for using vim that I have learned so far has been that one can press Ctrl+C or Ctrl+[ instead of the Esc key. However I use a dvorak keyboard so Ctrl+[ is a little out of reach for me as well so I mostly use Ctrl+C. Now I've read somewhere that these two key combinations don't actually have exactly the same behaviour and that it is better to use Ctrl+[. I haven't come across any problems so far though so I'd like to know what exactly is the difference between the two?

标签: vim
3条回答
够拽才男人
2楼-- · 2020-02-08 16:45

Extremely late answer, but I just had the same question and found one practical example which helps explain the difference, so why not.

If you select a visual block and then change it with c or append something to the end of it with A, if you then exit with <Esc>, the same change will happen on all the lines of the visual block (which is really useful! See :help v_b_A); if you exit with <C-c>, this doesn't happen, only one line gets the change. There are probably other similar things I didn't realize I was missing with <C-c>...

查看更多
何必那么认真
3楼-- · 2020-02-08 16:45

As it turns out, <C-[> is exactly identical to Esc, they are the same character. So no need to wonder about any difference there. :)

查看更多
仙女界的扛把子
4楼-- · 2020-02-08 17:03

According to Vim's documentation, Ctrl+C does not check for abbreviations and does not trigger the InsertLeave autocommand event while Ctrl+[ does.

One option is to use the following to remap Ctrl+C

inoremap <C-c> <Esc><Esc>
查看更多
登录 后发表回答