我编写了以下命令来搜索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
之前有焦点的窗口。我不确定这两种情况有什么不同。)
答案 0 :(得分:1)
行为(如:sbuffer
之类的其他行为)由'switchbuf'
选项控制。值为useopen
时,如果窗口已显示该帮助页面,则可以重新使用该窗口。如果您需要比该选项提供的控制更多的控制,则需要使用自定义命令/映射。
答案 1 :(得分:0)
到目前为止,我提出的是用{
替换help
命令
99wincmd j | wincmd s
这会分裂屏幕底部的任何窗口,这样当quickfix碰到底部窗口时,我仍然有一个窗口可以保持文件可见。
这个解决方案是可行的,但不如我的首选结果那么整洁,这是在帮助窗口中打开结果,该窗口在我运行命令时专注于窗口的上方分割。