VIM自动调整焦点窗口

GoT*_*imw 12 vim

我正在慢慢学习vim及其强大的功能.关于分割窗口(主要是水平分割),我有一个问题.有没有办法自动调整当前所选(焦点)窗口的大小?例如,假设一个设置使得聚焦窗口总是占据屏幕的70%.

使用Ctrl-w(数字)+/ -每次都不是很有效,特别是当我经常在几个文件之间跳转时.

如果有办法将其限制为仅水平分割的窗口,那也很酷.

Ing*_*kat 15

'winheight'设置确定当前窗口的最小行数.一些用户将此设置为999用于"Rolodex模式".以下将此设置为70%:

:let &winheight = &lines * 7 / 10
Run Code Online (Sandbox Code Playgroud)

对于任何爱好者来说,你可以WinEnter通过a 挂钩:autocmd,然后将窗口高度设置为N via :Nwincmd _.愚蠢的例子:

:autocmd WinEnter * execute winnr() * 2 . 'wincmd _'
Run Code Online (Sandbox Code Playgroud)

  • @thepickle:是的,使用 `&winwidth` 和 `&columns` 代替。 (2认同)

idb*_*rii 9

听起来像你想要黄金比例:使用黄金比例自动调整窗口大小.

一旦我发现你可以禁用黄金比例的"自动"部分,我开始自己使用这些设置:

" Don't resize automatically.
let g:golden_ratio_autocommand = 0

" Mnemonic: - is next to =, but instead of resizing equally, all windows are
" resized to focus on the current.
nmap <C-w>- <Plug>(golden_ratio_resize)
" Fill screen with current window.
nnoremap <C-w>+ <C-w><Bar><C-w>_
Run Code Online (Sandbox Code Playgroud)