最近使用vim发现了一个很奇怪的问题:
在insert mode下输入上下左右 方向键 会显示OAOBOCOD。
搜了下发现比较多的解决方案是:
set nocompatible
作为一个old vimer,肯定是不会犯这种错误的。
问题在哪?
在stackoverflow上发现了一个回答, 大意就是当你输入 “<-“ 时终端传给vim的是<esc>[d
。
突然惊醒!前几天,按照vim高手的指导设置了esc键的映射(然后把jk设置到<esc>)我的设置是inoremap <esc> <nop>
,也就是映射到了黑洞。当我输入“<-“”时,实际上输入的是<nop>[d
,那么vim自然无法识别为方向了。
那么如何解决呢 ?
1.不设置esc的mapping,自然就可以了,这是治标不治本的做法。
2.照常使用inoremap <esc> <nop>
,但在此之后加上inoremap <esc>[ <esc>[
,强行再把<esc>[
映射回来。那么再次输入<-的时候,vim检测到的<esc>[
就不会被转义了,而且esc键还是会被映射到黑洞中。
这个解决方案太他妈天才了!
- 本文作者: 陈秋水
- 本文链接: http://riopho.cn/2020/02/20/vim 上下左右方向键 无法正常输入显示ABCD解决方案/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!