Подтвердить что ты не робот

Проблемы с перерисованием Gvim с помощью Virtual Box и Windows 7

Gvim 7.4 на гостевом компьютере Linux внутри VirtualBox имеет серьезные проблемы с перерисованием: часто, когда я просматриваю вверх/вниз, отображаемый текст повреждается (например, пустым или с некоторыми "дырами" ). И мне нужно изменить размер/прокрутку, чтобы очистить экран. Я никогда не испытывал подобной проблемы ни с Gvim, ни с Virtualbox, но это делает gvim почти непригодным.

Дополнительная информация:

  • Распространение хоста Virtualbox: Windows 7 64 бит
  • Версия Virtualbox: 4.3.12 с гостевыми дополнениями
  • Распространение гостевой виртуальной машины: Linux Mint 17 Qiana 64-bit Cinnamon
  • Gvim package: vim-gtk (но это происходит и с помощью vim-gnome)

Любая идея, как решить эту проблему?

4b9b3361

Ответ 1

Проблема связана с некоторой ошибкой Cinnamon, возможно, появляется только при запуске внутри VirtualBox с включенным трехмерным ускорением. Фактически, я обнаружил, что дисплей был поврежден и для других приложений (например, для медиаплеера).

Я решил проблему, переключившись на диспетчер окон Mate с помощью следующих шагов:

  • Установленные пакеты основного помощника
  • Установленный также пакет mint-meta-mate
  • Вышел и выбрал Mate в качестве диспетчера окон

Теперь gvim и все другие приложения работают нормально.

Ответ 2

Есть много проблем с перерисованием. Решение ниже относится к очень специфической проблеме перезаписи с хостом Windows 7, гостевой ОС Linux и Ubuntu (или Compiz).

Решение 1

Протестировано с помощью последней версии Virtual Box 5.0.4 и гостевых дополнений, Ubuntu 14.04.3, 3D Acceleration enabled, стандартной установки с полными обновлениями.

a) sudo apt-get install compizconfig-settings-manager

b) Запустите его из тире (тип "ccsm" ). Выберите "Утилита" слева. Выберите "Обходные пути" (НЕ установите флажок, нажмите кнопку, чтобы войти в подкатегорию). "Force complete redraw on initial damage" должно быть включено по умолчанию (не обязательно, если это необходимо, на всякий случай). Теперь ENABLE Force полноэкранный перерисовывает (буферный своп) на перерисовке, который по умолчанию не установлен. Эффект немедленный, если окно gvim открыто, просто щелкайте между вкладками или прыгайте вверх/вниз по файлам, чтобы увидеть разницу.

Решение 2 (для 13.04, 13.10 или ниже)

Если вы используете 13.04 или ниже (возможно, 13.10), сначала попробуйте переключиться на Virtual Box 5.0.4+ (5.0.4 был протестирован) и его гостевые дополнения, установить CCSM и протестировать обходной путь, как описано выше (я могу подтвердите, что это сработало на моей старой 13.04 VM).

Если это не работает или использование последней версии Virtual Box/Guest Additions не является вариантом, попробуйте перевести гостевые дополнения в версию 4.2.12 (не просто 4.2.x, поверьте мне, я пробовал много версий) Обратите внимание, что 4.2.12 не будет работать в Ubuntu 14.04.3+ из-за новой версии X Server.

Предыдущее сообщение ниже (некоторый фон)

Тесты, через которые я прошел:

  • Unity 2D: нет ошибок, но уродливых (без тени теней и т.д.)
  • Монетный двор 15 + CINNAMON: имеет ошибку
  • Mint 16 MATE: нет ошибок, но некоторые проблемы с прокруткой
  • Монетный двор 14.1: нет ошибки, потому что гостевые дополнения 4.1.18 предварительно установлены.. но SLOW!
  • ... обновление гостевых дополнений к 4.3.6: появляется ошибка gvim! < -bingo

Наконец, после часов и часов перезагрузки виртуальных машин...

  • 4.2.12: нет ошибки перерисовывания gvim, отлично работает для меня (Ubuntu 13.04, Mint 15 Cinnamon), относительно гладкая для виртуальной машины (с полупрозрачным терминалом и всеми 3D-изломами)
  • 4.2.18: нет ошибки gvim redraw, но по какой-то причине SLOW
  • 4.2.20: ОШИБКА!
  • 4.3.6: ОШИБКА!

Далее

Согласно Bram Moolenaar "patch 7.3.638 просто удалил ненужную перерисовку, которая, вероятно, обнаружила существующую проблему" (с библиотекой GTK).

Однако стоит упомянуть, что я использую Ubuntu 13.04 VM в течение года с Google Chrome, Firefox, Open Office, MySQL Workbench и т.д., и у меня никогда не было проблем с перерисовкой. Таким образом, даже если это ошибка GTK, это проблема, которая, как представляется, тесно связана с тем, как VIM обновляет содержимое окна.

https://github.com/vim/vim/issues/91

Может быть проблема с GTK, но если это происходит только с хостами Windows 7... тогда это, по-видимому, проблема с синхронизацией между событиями перерисовки/переименования GTK и слоем Open GL Compiz (моя догадка).

Как воспроизвести/проверить ошибку

Откройте длинные текстовые файлы на нескольких вкладках (сохранение/загрузка сеанса экономит время).

Затем быстро переключайтесь между вкладками с помощью Ctrl-PgUp/PgDn или быстро перемещайтесь сверху вниз с помощью Ctrl-Home, Ctrl-End. Через несколько секунд вы увидите только часть обновления окна.

Ответ 3

Здесь может быть недоступен, так как я использую Fedora 21 здесь; но поскольку это результат # 1 для проблемы обновления gvim, я добавляю эту заметку для более поздней справки.

Не стесняйтесь выделять много видеопамяти. Я играл с 2D accelation, а также с опцией 3D accelation без каких-либо изменений. Партия gulty заключалась в том, что по умолчанию у меня было только 12Mo видео, я изменил ее на 128Mo, и каждый из них теперь работает хорошо.

Ответ 4

Я столкнулся с той же проблемой в ОС Salix. Поскольку изменение настроек ускорения в VirtualBox не решило проблему, мне легче построить gvim с GTK + 3 (поскольку ошибка была вызвана GTK + 2, как упоминалось в ответе @user4134275), чем возиться с Window Manager и Desktop Environment.