我使用 gvim
set number
在我的.vimrc
系统中,它在每一行之前显示行号和一个空格。
如果文档少于 10 行,则占用 2 列;如果文档多于 10 行,则占用 3 列,依此类推。
如果我把
set lines=40 columns=80
在 中.gvimrc
,它将显示 78 列代码和 2 列行号加速度,或者 77 + 3 等等。
我希望将窗口宽度设置为 80 列 + 显示行号所需的列数。
它不需要是动态的,但我希望能够读取给定文件的行数并进行columns
相应设置。(当然,动态解决方案确实很棒,但不是必需的)
答案1
在你的 ~/.vimrc 中尝试这个:
au BufRead * let &numberwidth = float2nr(log10(line("$"))) + 2
\| let &columns = &numberwidth + 80
每次您加载一个缓冲区(即打开一个文件)时,它都会确定显示最大行号所需的列数,相应地设置“numberwidth”选项,并将“columns”设置为该数字加上 80 作为文本。
答案2
我用
set lines=24 columns=84
在我的 $HOME/.gvimrc 中,它给了我你想要的东西。我很少(如果有的话)有超过 999 行的文件,所以它对我来说是有效的。
答案3
我将数字宽度设置为 5,然后将列设置为 85(80+5)。这对于从 0 行到 100 万行的文件来说应该很好。
以下是您可能需要放入(默认)~/.vimrc 文件中的内容
set numberwidth=5 "Good for files upto a million lines
set columns=85
set nu
您将看到行号的格式为“%5d”(5 是上面的数字宽度),而不是默认的“%d”格式,这在行号前浪费了一些空间,但保持一致性。