如何在以前关注的窗口中获得打开结果的quickfix?

时间:2014-07-31 21:29:13

标签: windows vim

我编写了以下命令来搜索Vim的帮助文件:

command! -n=1 -complete=help SearchHelp \
    help | execute "grep! -i <args> $VIMRUNTIME/doc/ -r" | botright copen

现在,例如,当我忘记了在光标下增加数字的键时,我可以这样做:

:SearchHelp increment

搜索帮助文件。 (答案结果是<Ctrl-A>。)

问题是......我打开了几个窗口,我想让quickfix让他们独自一人。当我在quickfix列表中点击<Enter>时,我希望它打开该帮助窗口中的结果,我在命令开头拆开了它。

但它没有做到这一点。它似乎总是倾向于在所有编辑窗口的最底部打开结果,无论我关注哪个窗口,并且对我打开的帮助窗口完全不感兴趣。显然这会从我在该窗口中编辑的任何文件中移开(是的,我有:set hidden),当我完成浏览帮助时需要任意数量的<Ctrl-O>键才能返回到文件文件。

那么我怎样才能在之前关注的窗口中打开quickfix(理想情况下是拆开的帮助窗口)?

(顺便提一下,我有时会使用patched version Yegappan Lakshmanan的旧grep.vim插件,不知何故 打开:cope会导致在我跑:Grep之前有焦点的窗口。我不确定这两种情况有什么不同。)

2 个答案:

答案 0 :(得分:1)

行为(如:sbuffer之类的其他行为)由'switchbuf'选项控制。值为useopen时,如果窗口已显示该帮助页面,则可以重新使用该窗口。如果您需要比该选项提供的控制更多的控制,则需要使用自定义命令/映射。

答案 1 :(得分:0)

到目前为止,我提出的是用{

替换help命令
99wincmd j | wincmd s

这会分裂屏幕底部的任何窗口,这样当quickfix碰到底部窗口时,我仍然有一个窗口可以保持文件可见。

这个解决方案是可行的,但不如我的首选结果那么整洁,这是在帮助窗口中打开结果,该窗口在我运行命令时专注于窗口的上方分割。