如何在Vim中更改快速修复窗口的默认位置?

28

安装:在MacVim上安装MiniBufExplorer插件,在顶部展开窗口,同时安装Taglist插件,在右侧展开窗口。

由于我把Taglist放在右侧,每当我打开快速修复窗口时,它就会位于极右边,在Taglist窗口下方(与Taglist窗口具有相同的宽度)。

是否可以更改默认的打开位置逻辑,使得快速修复窗口将打开在我的主要代码窗口下面(向下和向左)或者可能在Vim视口底部展开整个宽度?

2个回答

46

虽然无法更改:copen命令的默认拆分窗口行为,但可以通过两种方法解决此问题。

1. 使用直接修改窗口拆分方向的命令(参见:help :vertical和以下内容,直到“关闭窗口”段落)。

例如,考虑以下命令:

:botright copen
或者
:botright cwindow

使quickfix窗口成为最下方的窗口,甚至更低:

:vertical topleft cwindow

打开窗口并将其放置在当前窗口的左上角。

这些命令可以简写为:bo cope:bo cw:vert to cw。当然,您也可以创建一个快捷映射或自定义命令以便快速调用。

2. 另外,您可以使用自动命令将快速修复窗口移到窗口布局底部:

:autocmd FileType qf wincmd J

这个触发器利用了 quickfix 窗口可以通过文件类型qf轻松区分的特点。wincmd J 命令等同于 [Ctrl+W, Shift+J] 快捷键序列,指示 Vim 将当前窗口移动到屏幕底部(请参阅:help :wincmd:help ^WJ)。


好的,":bo cope" 可以工作并且相当简短。如果我可以设置默认值就更好了。另一个选项是像大多数人一样在左侧使用标签列表。我有点喜欢它在右侧。 - dreyln
1
@dreyln,我想出了另一种解决问题的方法。请查看更新后答案中的第二种方法。 - ib.
"wincmd J"也可以直接放置在~/.vim/ftplugin/qt.vim中,以及针对此文件类型的任何其他自定义设置。 - mMontu
1
@mMontu:当然,可以将自定义设置为文件类型插件。请参阅:help ftplugin以了解有关编写文件类型插件的信息。 - ib.
太棒了!我想让quickfix窗口默认占满整个宽度(vim的默认设置是占据垂直分割的最右边的窗口)。你的autocmd完美解决了这个问题。但我很好奇...你是怎么找到这个方法的呢?我在文档中试图找到相关信息,但除了:botright copen之外什么都没有找到。 - oliver
显示剩余2条评论

4

默认情况下,Vim在水平分割时会将新窗口打开在当前窗口的上方,在垂直分割时会将其打开在当前窗口的左侧(:help opening-window)。您可以像大多数其他Vim设置一样自定义此行为:

使新窗口出现在当前窗口下方。

:set splitbelow

使新窗口出现在右侧。

:set splitright

2
正常的默认设置似乎不适用于Quickfix窗口。另外,:set splitbelow没有效果。Quickfix窗口仍然出现在下方和右侧。 - dreyln

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接