如果在gui启动之前调用system(),Vim将重置&行

时间:2011-08-23 12:45:26

标签: debugging vim settings

我对gVim有一个奇怪的问题并设置了行数。要重新创建问题,请使用以下行创建一个临时的.vimrc文件:

1 if has('gui')
2     set lines=40
3 endif
4 let test=system('ls')
5 echo test

如果现在从带有gui(gvim或vim -g)的终端启动vim,你会期望&lines=40。会发生的情况是&lines首先在第2行按预期设置为40,然后在调用system('ls')时在第4行重置。因此,&lines/=40在第5行。此外,似乎&lines将设置为环境变量$LINES设置的任何内容。

任何有助于确定问题所在的帮助都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

如何将set lines=999放入~/.gvimrc文件中?这看起来是运行gvim时来源的最后一个脚本。

您可以使用以下命令查看源文件以及命令的顺序:

:scriptnames

此外,以下内容应该告诉您最后设置的脚本lines(或任何其他选项):

:verbose set lines?

答案 1 :(得分:0)

当输入gui时,看起来'lines'设置被重置。尝试使用以下方法之一替换set lines=40

autocmd GuiEnter * set lines=40

call feedkeys("\<C-\>\<C-n>:set lines=40\n", 'n')

autocmd GuiEnter * call feedkeys("\<C-\>\<C-n>:set lines=40\n", 'n')