我知道我的标题不是很描述清楚,所以让我解释一下。
昨天我接触到了Vimgrep和copen
,所以我在.vimrc
中添加了以下行:
nnoremap <silent> ,/ :execute 'vimgrep /'.@/.'/g %'<CR>:copen<CR>
它打开了Vim中搜索(高亮)单词的quickfix列表。
现在,当你在快速修复列表中按下Enter<CR>
,它会带你到主Vim窗口中对应的行。
现在,我遇到的问题是我已经将<CR>
键映射成map <CR> o<Esc>
,这会在当前行下面创建一行新的空行。
因此,你可以看到两者之间存在冲突。所以,我正在尝试编写一个像这样的Vim函数:
伪代码
function IfNotInsideQuickFix()
if buffer != QuickFix
then map <CR> o<Esc>
elif buffer == QuickFix
Normal behaviour
Call function
这是:buffers
的输出结果:
:buffers
1 #a "test.cs" line 0
2 %a- "[Quickfix List]" line 1
Press ENTER or type command to continue
我没有编写 vim 函数的经验。所以,可以有人指导一下我吗?
附注:我知道我可以更改 Vim 映射来创建新行,但我想学习如何通过 Vim 函数实现。
:h autocmd
,但是无法弄清楚如何在我的情况下使用它。 - RanRag