vim (точнее vim-enhanced в xterm'е) при открытии файла отображает только statusline (или как там его) пока не нажмёшь любую клавишу (за исключением модификаторов). Затем всё приходит в норму. Сломалось после обновления до 7.3.112-alt1. Смена мэйнтейнера не осталась незамеченной. :(
Не воспроизводится. Проверял в двух конфигурациях. Основная: $ echo $TERM rxvt-unicode $ readlink -ev /usr/bin/vim |xargs -r rpmquery -f vim-console-7.3.112-alt1 Тестовая: $ echo $TERM xterm $ hsh --init && hsh-install vim-enhanced && hsh-shell
У меня в хэшере после нажатия, например, на Enter меняется раскраска файлов (смотрел на /etc/bashrc). Это тоже не воспроизводится?
(In reply to comment #2) > У меня в хэшере после нажатия, например, на Enter меняется раскраска файлов > (смотрел на /etc/bashrc). Это тоже не воспроизводится? У меня в xterm воспроизводится, а в gnome-terminal и urxvt нет.
У меня не воспроизводится ни в одном из терминалов. Кирилл, попробуйте проверить от новосозданного юзера.
(In reply to comment #2) > У меня в хэшере после нажатия, например, на Enter меняется раскраска файлов > (смотрел на /etc/bashrc). Это тоже не воспроизводится? Нет, не воспроизводится.
Гипотеза: наверное, у нас xterm'ы разных версий. Я сумел воспроизвести мигание раскраски, только устанавливая xterm и rxvt-unicode из Сизифа в hasher, и запуская эти xterm/urxvt прямо внутри hasher. Так что я склонен полагать, что дело тут не совсем в vim или даже совсем не в vim.
Совсем забыл что uxterm==xterm. В urxvt не воспроизводится даже c версией из Сизифа внутри hasher. Только с xterm и только c версией из Сизифа внутри hasher.
(In reply to comment #2) > У меня в хэшере после нажатия, например, на Enter меняется раскраска файлов > (смотрел на /etc/bashrc). Это тоже не воспроизводится? У кого это воспроизводится, попробуйте запустить под strace'ом: strace -e pause -o /dev/null vim /etc/bashrc Изменится ли видимое поведение?
> У кого это воспроизводится, попробуйте запустить под strace'ом: > strace -e pause -o /dev/null vim /etc/bashrc > Изменится ли видимое поведение? нет.
(In reply to comment #9) > > У кого это воспроизводится, попробуйте запустить под strace'ом: > > strace -e pause -o /dev/null vim /etc/bashrc > > Изменится ли видимое поведение? > > нет. А у меня мигание в сизифном xterm внутри hasher при запуске под strace пропадает. Наверное, у нас ещё и ядра разные. В общем, я не понимаю, как это нормально воспроизводить и что с этим делать.
(In reply to comment #10) > В общем, я не понимаю, как это нормально воспроизводить и что с этим делать. Возможно, имеет смысл по-bisect'ить vim? Предыдущая версия же работает. Может наведёт на какие-то мысли...
также воспроизводится в федоре с 7.3.107
(In reply to comment #11) > (In reply to comment #10) > > В общем, я не понимаю, как это нормально воспроизводить и что с этим делать. > > Возможно, имеет смысл по-bisect'ить vim? Предыдущая версия же работает. Может > наведёт на какие-то мысли... Прежде чем бисектить, хорошо бы узнать, не меняется ли поведение vim в результате простой пересборки той версии, которая раньше работала без мигания.
Откатил 91'ый патч. Как будто бы починилось.
(In reply to comment #14) > Откатил 91'ый патч. Как будто бы починилось. Ты предлагаешь откатить этот коммит? Тогда хотелось бы понять, что именно он ломает и почему, чтобы это можно было как-то отрепортить.
Мне сложно сказать почему именно этот патч. Я нашёл его проверяя коммиты которые потенциально могут что-то похожее сломать. Угадал с первого раза. Что именно делает этот коммит представляю слабо.
Оно и до патча 091 моргало, только сразу при старте, без ожидания.
(В ответ на комментарий №17) > Оно и до патча 091 моргало, только сразу при старте, без ожидания. Пристальное изучение процесса редактирования spec-файла показало, что vim некорректно использует ответ xterm-а о количестве поддерживаемых цветов. В первый раз он раскрашивает картинку исходя из 8-цветного режима: (цитата из редактирования спека xterm-а): "\33[1;1H\33[33mProvides\33[m\33[35m:\33[m xvt, \33[35m%\33[m\33[36m_bindir\33[m/xvt\r\n\33[1m\33[34m~" Во второй раз -- из многоцветного: "\7\33[32;61H \33[1;1H\33[m\33[H\33[2J\33[1;1H\33[38;5;130mProvides\33[m\33[35m:\33[m xvt, \33[35m%\33[m\33[36m_bindir\33[m/xvt\r\n\33[94m~" Обратите внимание на числа перед Provides и ~ -- это цвета. Причём: \33[33mProvides -- это цвет #3 (8 цветов) \33[38;5;130mProvides -- это цвет #130 (256 цветов) \33[34m~ -- это цвет #4 (8 цветов) \33[94m~ -- это цвет #12 (16-цветный режим NB!) У нас xterm собран с 256 цветами. По умолчанию собирается с 16. Но если собрать с 8, ситуация во второй раз станет такой: "\7\33[32;61H \33[1;1H\33[27m\33[m\33[H\33[2J\33[1;1H\33[33mProvides\33[m\33[35m:\33[m xvt, \33[35m%\33[m\33[36m_bindir\33[m/xvt\r\n\33[94m~: Т. е. "~" рисуется опять исходя из 16-цветного режима. NB! Делаю предположение, что где-то в недрах vim-а прибит или неправильно определяется режим xterm.
http://lists.altlinux.org/pipermail/community/2011-February/669592.html
Моргает при второй перерисовке экрана. Например, после первого движения курсором. После вызова syn_cterm_attr2entry() для всех символов в окне цвета становятся правильными. Backtrace: aep = syn_cterm_attr2entry(attr); at screen.c: 7271 screen_start_highlight(attr); at screen.c: 7487 screen_char( ...) at screen.c: 7445 screen_puts_len(text, -1, row, col, attr); at screen.c:6694 screen_puts(showcmd_buf, (int)Rows - 1, sc_col, 0); at normal.c:3999 display_showcmd(); at normal.c: 3931 add_to_showcmd(typebuf.tb_buf[typebuf.tb_off at getchar.c:2762 #0 vgetorpeek (advance=1) at getchar.c:2855 #1 0x080e5921 in vgetc () at getchar.c:1557 #2 0x080e5d34 in safe_vgetc () at getchar.c:1763 #3 0x0813510a in normal_cmd (oap=0xbf93f130, toplevel=1) at normal.c:666 #4 0x080f6605 in main_loop (cmdwin=0, noexmode=0) at main.c:1260 #5 0x080f98fa in main (argc=2, argv=0xbf93f3a4) at main.c:963 syn_cterm_attr2entry() не вызывается из первого update_screen(), который рисует в xterm неправильными цветами: http://lists.altlinux.org/pipermail/community/2011-February/669592.html Куда вставить syn_cterm_attr2entry(), чтобы атрибуты устанавливались правильно до первого update_screen()?
http://groups.google.com/group/vim_dev/msg/25a920eed6a143a9
В 7.3.137 починили. Проверял на сборке от raorn@.
Собрал 7.3.137-alt1, можно проверить: http://git.altlinux.org/repo/39769/
vim-4:7.3.137-alt1 -> sisyphus: * Thu Mar 03 2011 Dmitry V. Levin <ldv@altlinux> 4:7.3.137-alt1 - Updated to 7.3.137 (closes: #25013).