键盘 – Vim:为什么noremap在插入模式下不起作用?
考虑使用箭头键解除绑定
noremap <Left> <NOP> noremap <Right> <NOP> noremap <Up> <NOP> noremap <Down> <NOP> 这在普通模式下工作,但它在插入模式下不起作用:仍然可以使用箭头键导航.作为对策,必须包括 inoremap <Left> <NOP> inoremap <Right> <NOP> inoremap <Up> <NOP> inoremap <Down> <NOP> 但这对我来说并没有多大意义,因为我假设map和noremap应该适用于所有模式,而前置n / v / x / s / o / i / l / c指定映射仅在该特定模式下工作.是否有一个原因? 解决方法
这很容易解释:在插入模式映射中,Vim不会自动切换到正常模式(您可能希望保持插入模式,尽管文本翻译通常通过以下方式完成:iabb,而不是via:imap),因此适用的集合命令完全不同.例如,在正常模式下,Ctrl-U向上滚动,但在插入模式下,它会删除行中输入的字符! 诸如< C-O>之类的前缀.暂时从插入模式切换到正常模式.实际上,通常甚至必须为命令行模式定义不同的前缀,如此示例所示: noremap <C-Tab> :<C-U>tabnext<CR> inoremap <C-Tab> <C-O>:tabnext<CR> cnoremap <C-Tab> <C-C>:tabnext<CR> 因此,在定义映射时,请始终考虑需要哪些模式以及是否需要重新映射(:nmap vs.:noremap,更喜欢后者). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- shell – 在zsh中查找ALT LeftArrowKey解决方案
- angularjs – 当使用angular-ui的ui-date datepicker时,Ang
- shell 脚本报错"[: =: unary operator expected"
- 如何用角度构建多个应用程序?
- 添加OpenLDAP反向组成员资格维护覆盖后,如何更新现有对象的
- ofbiz的webservice接口提供(1)-WSDL的生成
- angular2-google-maps with angular2 app
- angularjs中$http模块发送post请求request payload转form d
- shell 学习第八天---扩展正则表达式(ERE)
- AngularJs 2 – 创建多个服务实例