Answers:
问题可能是程序不知道正确的屏幕尺寸是什么。通常,系统可以从终端程序获取此信息。但有时它不能,或者它被覆盖。
假设您正在使用类似unix的系统,该stty
命令可以显示系统认为屏幕大小是什么,例如,
$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
$
该rows
和columns
值是什么系统认为屏幕尺寸为。如果这是错误的,您可以使用它stty
来改变它们,例如,
stty rows 50 columns 132
但更好的方法是使用resize
(只需运行它,它调用相同的stty
读取接口)。
但是,stty
可能会显示正确的值。您的环境可能会使用LINES
和/或COLUMNS
环境变量覆盖其设置。(这些是用于termcap应用的长期遗留拐杖)。只是取消设置这些变量就可以解决这个问题。
进一步阅读:
我有同样的问题,一段时间后,发现我有行和列设置(set lines=30
并set columns=80
在.vimrc文件)。将它们注释掉("
在vim-rc语法中启动内联注释)可以解决问题。
:e $MYVIMRC
resize
完美地解决了我的问题。