如何将 gvim 的窗口宽度设置为 80 列文本,以及显示行号所需的宽度

Elt*_*lho 11 vim gvim

我使用 gvim

set number
Run Code Online (Sandbox Code Playgroud)

在我的.vimrc所以它在每一行之前显示行号,加上一个空格。

如果文档少于 10 行,则需要 2 列,如果超过 10 行,则需要 3 列,依此类推。

如果我把

set lines=40 columns=80
Run Code Online (Sandbox Code Playgroud)

在 中.gvimrc,它将显示 78 列代码和 2 列用于行号加速度,或 77 + 3 等。

我希望将窗口宽度设置为 80 列 + 显示行号所需的列数。

它不需要是动态的,但我希望能够读取给定文件的行数并进行设置columns。(当然,动态解决方案会非常简洁,但不是必需的)

gar*_*ohn 9

在你的 ~/.vimrc 中试试这个:

au BufRead * let &numberwidth = float2nr(log10(line("$"))) + 2
          \| let &columns = &numberwidth + 80
Run Code Online (Sandbox Code Playgroud)

每次加载缓冲区(即打开文件)时,这将确定显示最大行号所需的列数,相应地设置 'numberwidth' 选项,并将 'columns' 设置为该数字加上 80 作为文本.