windows – VIM:如何根据缓冲区映射命令?
发布时间:2020-12-14 01:46:55 所属栏目:Windows 来源:网络整理
导读:我知道我的标题不是描述性/清晰的,所以让我解释一下. 昨天我可以跨Vimgrep和copen,所以我添加了以下行.vimrc nnoremap silent,/ :execute 'vimgrep /'.@/.'/g %'CR:copenCR 它所做的是为vim中搜索(突出显示)的单词打开一个quickfix列表. 现在当您按回车 CR在
我知道我的标题不是描述性/清晰的,所以让我解释一下.
昨天我可以跨Vimgrep和copen,所以我添加了以下行.vimrc nnoremap <silent>,/ :execute 'vimgrep /'.@/.'/g %'<CR>:copen<CR> 它所做的是为vim中搜索(突出显示)的单词打开一个quickfix列表. 现在当您按回车< CR>在quickfix列表中,您将转到主Vim窗口中的相应行. 现在我遇到的问题是我已经映射了我的< CR like map< CR> O< ESC>这在当前行之下创建一条新行. 所以,你可以看到有两个冲突b / w.所以,我正在尝试的是提出一个vim的功能 伪代码 function IfNotInsideQuickFix() if buffer != QuickFix then map <CR> o<Esc> elif buffer == QuickFix Normal behaviour Call function 以下是:缓冲区的输出 :buffers 1 #a "test.cs" line 0 2 %a- "[Quickfix List]" line 1 Press ENTER or type command to continue 我没有写vim函数的经验.所以,有人可以指导我吧. PS:我知道我可以改变我的Vim映射来创建一个新的行,但是我想学习如何通过Vim函数
您可以保留您的全球< CR>映射原样,但本地在quickfix窗口中还原原来的行为.这通过以下方式完成:autocmd(当quickfix窗口打开时触发),映射(不重映射)< CR> (本地通过<缓冲区>)到其本身.
:autocmd BufReadPost quickfix nnoremap <buffer> <CR> <CR> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |