美文网首页
vim的ternimal的箭头无法使用的问题

vim的ternimal的箭头无法使用的问题

作者: 梦落迹南天 | 来源:发表于2018-12-12 16:06 被阅读0次

vim 8.1中的支持在buffer中打开ternimal,但是使用箭头复现上一条指令的时候,会跳转到normal模式,然后报 “: E21:Cannot make changes, 'modifiable' is off"的问题,这是因为在该版本的打开ternimal模式下,使用箭头的时候会触发一个以按键"ESC"开始的指令序列,详情请见->跳转,所以会直接跳到normal模式

目前还没有修复该问题,但社区提供了解决的方法,<ESC>跳到normal模式是因为设置了在终端模式下的映射,也就是按下ESC的时候,其实是触发了 ctrl+w+n,从而进入到normal模式

tnoremap     <ESC>         <C-W> N

而按下箭头之后本来是应该触发下面某个指令序列的功能,但是因为某种原因直接触发了上面的了

tnoremap     <up-arrow>            <ESC>..... 

解决方法

如果使用了spacevim作为配置,则在配置文件.Spacevim/autoload/Spacevim/default.vim 中会执行的地方加入如下内容,否则找到default.vim,将以下内容加入

tnoremap <ESC> <C-W>N
tnoremap <ESC><ESC> <C-W>N
set timeout timeoutlen=1000
set ttimeout ttimeoutlen=100

大致意思是,增加了一个两次<ESC>的快捷键,所以当输入第一个<ESC>的时候,系统觉得你可能是需要连续输入两个<ESC>,所以还会等一下(下方设置的超时时间),如果没有的话,就直接执行单个<ESC>对应的指令序列

相关文章

网友评论

      本文标题:vim的ternimal的箭头无法使用的问题

      本文链接:https://www.haomeiwen.com/subject/xafphqtx.html