<ESC>O を押した後に挿入モードに入るのに一瞬のラグがある場合は ttimeoutlen を設定せよ

Macのターミナル等で

int main() {
}|

のようなコードを打った後 ( | がカーソル位置) <ESC>O を押すと1秒ぐらいのラグの後、挿入モードに入ることがある。

理由は <ESC>OA が UPカーソルに設定されているターミナルがあり ターミナルが A の入力まちになるのが問題のようだ。

set ttimeoutlen としたときに値が -1 とかだと1秒ぐらいの待ちが発生するので set ttimeoutlen=100 とすると解決する。

参考資料

terminal - Up arrow key code, why '^[[A' becomes '^[OA'? - Vi and Vim Stack Exchange

f:id:bamch0h:20200105000604p:plain