Gvim перерисовывает проблемы с виртуальным ящиком и хостом Windows 7

17

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)

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

    
задан Claudio 29.07.2014 в 17:13
источник
  • Возможно, такая же проблема, как stackoverflow.com/q/20593268 –  glts 29.07.2014 в 19:29
  • Может быть. Но решения там тоже нет. –  Claudio 30.07.2014 в 10:24
  • Сделайте Ctrl + L, чтобы заставить перерисовать вместо изменения размера / прокрутки. Не настоящее решение, но ... –  rodrigo 30.07.2014 в 10:29
  • Спасибо! Тем не менее, я хочу иметь реальное решение. Я полагаюсь на gvim практически для всех видов редактирования (включая программирование). –  Claudio 30.07.2014 в 15:56
  • Я знаю, что этот вопрос немного стар, но я столкнулся с той же проблемой. Но я использую Gnome-Shell вместо Cinnamon. Прямо сейчас я использую обходной путь с MATE, но я хотел бы снова использовать Gnome-Shell. Mac OSX 10.9.4 VirtualBox 4.3.14 Дополнительные дополнения VB 4.3.15 Тестирование Debian Gnome-Shell vim-gnome –  evotion 28.08.2014 в 10:00
Показать остальные комментарии

4 ответа

3

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

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

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

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

ответ дан Claudio 31.07.2014 в 16:17
  • Привет, Claudio, если вы когда-нибудь захотите снова попробовать Compiz / Ubuntu на хосте Windows 7, пожалуйста, попробуйте решение 1 ниже (временное решение диспетчера конфигурации Compiz Config). Мне бы очень хотелось узнать, исправляет ли это проблему на чужой виртуальной машине и / или вызывает другие заметные задержки в виртуальной машине. –  12.09.2015 в 23:11
11

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

Решение 1

Протестировано с помощью последней версии Virtual Box 5.0.4 & amp; Guest Additions, Ubuntu 14.04.3, Включено 3D-ускорение , стандартная установка с полными обновлениями.

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 не является опцией, попробуйте понизить 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! & lt; -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 "патч 7.3.638 просто удалил ненужную перерисовку, что, вероятно, выявило существующую проблему" (с библиотекой GTK).

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

Ссылка

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

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

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

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

    
ответ дан user4134275 09.09.2015 в 01:15
  • Удивительное решение, спасибо! Любопытно, что побудило вас попробовать конфигурацию compiz, чтобы исправить эту проблему? Я не знаю, как вы когда-либо обнаружили это решение. –  Leng 13.09.2015 в 03:26
  • Глат услышать, как это работает! Шаблон, который я вижу для этой конкретной проблемы, - это хост Windows 7 и VBox, хотя я тоже видел отчет vmware. Поэтому у меня есть догадка, что это не дополнения для гостей, но это как-то связано с сообщениями «перекрасить» между GTK и OpenGL. Я хотел попробовать еще больше решений, таких как установка старой сборки Compiz или замена Compiz другим композитингом. Это привело меня к статьям, где люди используют этот переключатель, чтобы исправить разрыв в видео и другие проблемы с перерисованием. Не устраняет ошибку, но, похоже, не оказывает существенного влияния на производительность. –  13.09.2015 в 11:33
  • Как исправить это на CentOS 7? Я получил ту же проблему с перерисованием, используя CentOS 7 на VirtualBox 5.0.8. Однако вариант 1 не может использоваться, потому что compiz-manager недоступен в CentOS 7. –  Claudio 11.11.2015 в 15:48
  • Просто хочу добавить, у меня была такая же проблема, исправление по-прежнему работает для ubuntu 15.10, однако «обходной путь» был переименован в «решение» в ccsm. (что кажется немного подлым imho) –  Xavier T. 19.12.2015 в 10:23
0

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

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

    
ответ дан malat 31.12.2015 в 13:55
0

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

ответ дан mMontu 30.01.2017 в 12:26