我已将此添加到我的.vimrc
,以便在不离开普通模式的情况下附加换行符:
nmap <Enter> o<Esc>
问题是当我q:
到命令历史记录缓冲区时。此绑定与 Enter 的使用冲突,用于从历史记录中选择命令。一个较小的问题是当阅读帮助页面时,按 Enter 将显示该文件为只读的警告。如何以忽略这两个上下文的方式重新映射此密钥?
答案 0 :(得分:1)
您可以通过缓冲区本地映射来撤消命令行窗口的全局映射:
autocmd CmdwinEnter * nnoremap <buffer> <Enter> <Enter>
(我的ingo-library plugin为此提供了通用ingo#window#cmdwin#UndefineMappingForCmdwin()
功能。)
对于帮助缓冲区,请使用相同的方法,但触发FileType
事件:
autocmd FileType help nnoremap <buffer> <Enter> <Enter>
答案 1 :(得分:0)
您可以使用此方法https://stackoverflow.com/a/10410590/3627387
使用autocmd
进行设置
let blacklist = ['nofile', 'help']
autocmd FileType * if index(blacklist, &bt) < 0 | nmap <Enter> o<Esc>
我们在这里检查缓冲区类型:help 'buftype'