跨选项卡自动调整 Vim 中的拆分大小
Resize splits in Vim automatically across tabs
我在 Vim 工作流程中使用了很多选项卡,每个选项卡中可能有多个拆分。我最近在 Preserving equal sized split view 中发现,在我的 vimrc 中加入这一行会自动使我的拆分大小相等。
autocmd VimResized * wincmd =
但是,如果我调整 Vim 所在的 window 的大小,它似乎只会调整我所在的 当前 选项卡的大小。对于 other 选项卡,拆分仍然大小不均。当 window 大小改变时,有没有办法自动调整所有选项卡中的拆分大小?
您可以使用 :tabdo
命令在所有现有选项卡中执行序列。这已经完成了工作:
autocmd VimResized * tabdo wincmd =
虽然可能有一个不良的副作用,它会在最后一个选项卡上结束命令。您可以通过保存它并在命令结束后恢复它来解决这个问题。通过定义函数更容易做到这一点。
function! ResizeWindows()
let savetab = tabpagenr()
tabdo wincmd =
execute 'tabnext' savetab
endfunction
autocmd VimResized * call ResizeWindows()
我在 Vim 工作流程中使用了很多选项卡,每个选项卡中可能有多个拆分。我最近在 Preserving equal sized split view 中发现,在我的 vimrc 中加入这一行会自动使我的拆分大小相等。
autocmd VimResized * wincmd =
但是,如果我调整 Vim 所在的 window 的大小,它似乎只会调整我所在的 当前 选项卡的大小。对于 other 选项卡,拆分仍然大小不均。当 window 大小改变时,有没有办法自动调整所有选项卡中的拆分大小?
您可以使用 :tabdo
命令在所有现有选项卡中执行序列。这已经完成了工作:
autocmd VimResized * tabdo wincmd =
虽然可能有一个不良的副作用,它会在最后一个选项卡上结束命令。您可以通过保存它并在命令结束后恢复它来解决这个问题。通过定义函数更容易做到这一点。
function! ResizeWindows()
let savetab = tabpagenr()
tabdo wincmd =
execute 'tabnext' savetab
endfunction
autocmd VimResized * call ResizeWindows()