Answers:
在您的〜/ .vimrc中尝试以下操作:
au BufRead * let &numberwidth = float2nr(log10(line("$"))) + 2
\| let &columns = &numberwidth + 80
每次加载缓冲区(即打开文件)时,缓冲区将确定显示最大行号所需的列数,相应地设置'numberwidth'选项,并将'columns'设置为该数字加上80作为文本。
:help autocommand-events
。其中是TabEnter
,因此您可以尝试在上面的示例BufRead
中用替换,BufRead,TabEnter
以查看是否提供您想要的行为。我自己尚未对该示例进行过测试。
'numberwidth'
仅与文件中的行数成对数增长,因此,如果您完全有能力'number'
启用水平空间,则不必担心会限制它。
:help expr1
)或if / endif(例如:help options-in-terminal
)来控制它很容易。问题在于更改&'number'
更改时的列。我曾考虑过使用OptionSet自动命令事件,但是:help OptionSet
说在处理此事件时重置选项是个坏主意。
我用
set lines=24 columns=84
在我的$ HOME / .gvimrc中,这给了我您想要的东西。我很少(如果有的话)的文件长于999行,因此对我有用。