Vim сбрасывает строки, если system () вызывается перед запуском графического интерфейса - PullRequest
1 голос
/ 23 августа 2011

У меня странная проблема с gVim и настройкой количества строк.Чтобы воссоздать проблему, создайте временный .vimrc-файл со следующими строками:

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

Если vim теперь запускается из терминала с его графическим интерфейсом (gvim или vim -g), вы должны ожидать &lines=40.Что происходит, так это то, что &lines сначала устанавливается равным 40, как и ожидалось в строке 2, а затем сбрасывается в строке 4 при вызове system('ls').Таким образом, &lines/=40 в строке 5. Кроме того, похоже, что &lines будет установлен на любую переменную среды $LINES, установленную на

. Любая помощь в определении проблемы будет оценена.

Ответы [ 2 ]

1 голос
/ 25 августа 2011

Как насчет размещения set lines=999 в вашем файле ~/.gvimrc? Похоже, что это последний скрипт, полученный при запуске gvim.

Вы можете увидеть, какие файлы получают и в каком порядке, с помощью следующей команды:

:scriptnames

Кроме того, следующее должно сказать вам, в каком скрипте lines последний раз был установлен (или любой другой вариант в этом отношении):

:verbose set lines?
0 голосов
/ 25 августа 2011

Похоже, настройка «линий» сбрасывается при вводе графического интерфейса. Попробуйте заменить 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...