Почему gVim изменяет размеры и перемещает себя после некоторых действий?

Я начал использовать gVim несколько недель назад. Однако с самого начала я заметил странное изменение размера всего окна gVim при выполнении определенных действий. Я думаю, что это связано с моим использованием Windows Aero Snap (в системе Windows 7 x64).

Шаги для воспроизведения (с пустым .vimrc файл, и мой vimfiles папка переименована):

  1. Я открываю гвим
  2. Я поместил окно gvim на левую сторону монитора с помощью (несколько нажатий) win+left arrow
  3. Я создаю новую вкладку, используя :tabe

Результат: gVim располагается где-то еще на экране. Поэтому я должен изменить положение, используя win+стрелка влево. Очень надоедливый.

У меня есть это с другими действиями вкладки и окна, как: :vnew, C-W o...

Кто-нибудь какие-нибудь советы о том, почему это происходит, и что я могу сделать, чтобы это исправить? Я уже опустошил мой .vimrc файл и временно переименовал мою папку ~/vimfiles, чтобы исключить вмешательство любого плагина.

Изменить: После ответа Мэтью, и информация о :help bugsЯ отправил отчет об ошибке (на самом деле это сообщение) bugs@vim.org

2 ответа

Решение

gvim может делать подобные вещи в некоторых ситуациях со значениями guioptions которые делают элементы управления GUI, такие как полосы прокрутки или ярлыки вкладок, появляются и исчезают. Попробуйте команду :set guioptions?,

Если отображаемое значение включает в себя "L" или "R" (которые дополнительно показывают вертикальные полосы прокрутки), это может быть вашим виновником, и вы можете удалить опцию, как описано ниже.

Если он включает в себя "е", и особенно если :set showtabline? показывает, что параметр = 1, который также может вызвать проблемы, и вы можете использовать методы ниже, чтобы изменить любой параметр. (В этом случае строка ярлыков вкладок появляется только при наличии как минимум двух вкладок.)

Если это не так, попробуйте определить, какие части графического интерфейса появляются и исчезают при возникновении проблемы, а затем найдите параметр, который управляет этим поведением.

Пример того, как исправить, если значение проблемы 'L':

L в настройках по умолчанию, которые есть (из справки)

"egmrLtT"   (MS-Windows),
"aegimrLtT" (GTK, Motif and Athena).

Поэтому вы можете выполнить одну из этих команд, чтобы исправить это:

:set guioptions-=L  "just remove L
:set guioptions=egmrtT    "explicitly set the options you want, as noted you might want to remove 'e' as well

Вы можете добавить одну из этих команд в свой файл.vimrc, чтобы он всегда был установлен.


Вам определенно следует перейти на более позднюю сборку, поскольку в 7.3.46 в этой области исправлена, по крайней мере, одна ошибка. Тем не менее, есть проблемы с 7.3.703.

Известно, что установка "Vim без Cream" надежна и поддерживается в актуальном состоянии, и предоставляет Vim без дополнений проекта Cream. Будущие читатели могут обнаружить, что ошибки исправляются путем обновления.

Запрос на извлечение был только что добавлен в Vim 8.0.1278. Теперь вы можете добавить следующую строку в вашу конфигурацию, чтобы облегчить проблему:

  • guioptions+=k

Это позволяет избежать изменения размера окна при добавлении вертикального разбиения, табуляции и т. Д. Это делает размер окна в целом более согласованным, но также позволяет избежать проблемы изменения размера, о которой вы упоминали, когда окно Vim прикреплено к левой / правой стороне.,

Если вы не хотите использовать эту новую опцию, проблема заключается в том, как Vim изменяет размер. В сборке Windows он использует позицию восстановленного окна (которая отличается от того, когда он закреплен вправо / влево, как будто он находится в максимизированном режиме), поэтому всякий раз, когда код пытается изменить размер Vim по любой причине, он сбрасывает позицию в восстановленное положение окна также. Дальнейшие обсуждения здесь: https://github.com/vim/vim/issues/2180

Другие вопросы по тегам