Vim:SPLIT,宽度指定为总宽度的函数

VimL: VSPLIT with width specified as a function of total width

我想编写一个 vim 脚本,用 vsplit 打开一个新的 window,其中新 window 的宽度等于总列数减去 90。

结果是,当前 window 将有 90 列宽(查看 80 列代码 + 装订线),新的 vsplit 将占据屏幕剩余的任何部分。

如果我对 vsplit 的理解正确,:vsplit 90 指定正在创建的 window 应该是 90 列。有没有办法将 window 中的当前列数放入变量中?

let cur_cols = [insert magic here]
let win_width = cur_cols - 90
execute "vsplit ". win_width

使用 winwidth 求 window 的宽度。 winwidth returns 宽度为编号。字符数 window 可以容纳。在你的情况下,使用

let cur_cols = winwidth(0)

这里的参数0指的是现在的寡妇。更多信息,

:help winwidth
:help :vsplilt