
Когда я использую vi или vim для редактирования файлов в putty, он показывает только ограниченное количество строк и столбцов. Так как же расширить редактор на весь экран?
решение1
Проблема, скорее всего, в том, что программа не знает, какой правильный размер экрана. Обычно система может получить эту информацию из терминальной программы. Но иногда она не может или она переопределяется.
Если вы используете какую-то 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). Простое удаление этих переменных исправляетчтопроблема.
Дальнейшее чтение:
- RFC 1073 - NAWS (согласование размера окна)
- изменить размер(1)
- использование_среды(3)описывает переменные среды
- стти(1)рассказывает, как установить/получить настройки терминала
решение2
Ввод в терминале
resize
пересчитает строки и линии, указанные командой
stty -a | grep columns
speed 38400 baud; rows 55;columns 138; line = 0;
решение3
У меня была та же проблема, и через некоторое время я обнаружил, что у меня были заданы строки и ряды ( set lines=30
и set columns=80
) в файле .vimrc. Закомментировав их ( "
starts inline comment в синтаксисе vim-rc ) проблема была решена.
решение4
Лучший и самый простой способ — создать файл .vimrc в вашем домашнем каталоге, а затем вставить в него указанное ниже содержимое.
set ai
set mouse=a
set incsearch
set confirm
set number
set ignorecase
set smartcase
set wildmenu
set wildmode=list:longest,full
set lines=80
set columns=80
Сохраните файл и выйдите, затем перезагрузите файл в текущей оболочке.
source .vimrc