escの代わりにctrl + cを使用して挿入モードを終了すると、viで問題が発生しますか?

escの代わりにctrl + cを使用して挿入モードを終了すると、viで問題が発生しますか?

viを使用するときは、従来の方法ではなくCtrl+を使用して挿入モードを終了します。後者の代わりに前者を使いたくない状況はありますか?ベストプラクティス以外の他の問題は発生しますか?CEsc

答え1

Ctrl-C挿入モードを含むほとんどのモードではEsc異なります。違いは、頭字語の代わりに頭字語がトリガーされることです。これがあなたにとって重要かどうかは、あなたまたはあなたが使用しているプラ​​グインが略語を使用しているかどうかによって異なります。vivimEscCtrl-c


Esc仮定して実行する方がCtrl-C安全です。いいえ意味は同じですvim。その他はい同じサイトでブロック挿入モードを終了するときです(ではありませんvi)。

答え2

というと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のマッピングを定義すると<esc>トリガーされますInsertLeave

答え3

私の考えでは、あなたが言うことはvim「いいえ」だと思いますvi

これはLinuxで動作しますvimが、Linux以外のオペレーティングシステムには絶対に触れないことを100%確信しない限り使用しません。その理由は、他のオペレーティングシステムにはviそれを実装しない独自の実装がある可能性があり、viCtrl-Cがそのプラットフォームで実行されたときにプロセスを中断して端末を奇妙な状態にする独自のレガシー動作を見つけることができるためです。

関連情報