开发者

How to change the default position of quickfix window in Vim?

Setup: MacVim with MiniBufExplorer plugin window spanning the entire top and Taglist plugin window on the right.

Due to the fact that I keep my Taglist on the right, whenever I open the quickfix window, it is positioned on the far right, below the Taglist window (with the same width as the Taglist window)

Is it p开发者_开发技巧ossible to change the default opening position logic, so that the quickfix window will open below my main code window (down and to the left) or maybe span the entire width at the bottom of the Vim viewport?


While it is not possible to change the default split-window behavior of the :copen command, one can approach the issue in two ways.

1. Use the commands that directly alter window splitting directions (see :help :vertical and below until the “Closing a window” paragraph).

For instance, consider the commands:

:botright copen

or

:botright cwindow

to make the quickfix window open as the bottommost one, or even:

:vertical topleft cwindow

to open it to the top left of the current window.

These commands can be shortened to :bo cope, :bo cw, and :vert to cw, respectively. Also, one can, of course, create a short mapping or a custom command for their quick invocation.

2. Alternatively, move the quickfix window to the bottom of the window layout using an auto-command:

:autocmd FileType qf wincmd J

This trigger takes advantage of the fact that the quickfix window can be easily distinguished by its file-type, qf. The wincmd J command is equivalent to the [Ctrl+W, Shift+J] shortcut sequence instructing Vim to move the current window to the very bottom of the screen (see :help :wincmd and :help ^WJ).


By default, Vim opens the new window above the current one for horizontal splits, and to the left of the current one for vertical splits (:help opening-window). You can customize this behavior like most other things in Vim:

make the new window appear below the current window.

:set splitbelow

make the new window appear on the right.

:set splitright
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜