Как запустить gVim максимально?


38

Как сделать так, чтобы gVim автоматически увеличивал окно при его открытии? И кросс-платформенное решение, я пытаюсь использовать одни и те же конфиги в Linux и Windows-машине ...

Я пробовал взломать :set lines=999 columns=999, он почти работает, но окно не развернуто, просто изменил размер, и я потерял некоторые строки / столбцы.


3
Это самый портативный способ, который я знаю. Не могли бы вы уточнить «но окно не развернуто, просто изменено размер, и я теряю некоторые строки / столбцы». Максимизация - это афаик, изменение размера до краев. И я не думаю, что когда-либо потерял ряд / столбец таким образом.
Ладья

@Idigas: правильно, максимизация - это просто «изменение размера до заполнения доступного пространства (не покрывая панели инструментов и т. Д.)», С точки зрения wm-говорить :)
Акира

Установка хака выше не изменяет размеры до краев. Я начинаю думать, что лучший подход - добавить if в мой vimrc: если бы это было windows, вызовите config, иначе вызовите другой config.
Кто-то все еще использует тебя MS-DOS

Ответы:


30

Из вики Vim :

au GUIEnter * simalt ~x

Это будет работать на Windows; Я не уверен, какие комбинации клавиш вам понадобятся в Gnome / KDE.


Это не сработало для меня в Windows 7 Ultimate.
Мэтт Александр

2
Это также зависит от языка ОС, к сожалению. Для французских версий Windows это становится au GUIEnter * simalt ~n.
ereOn

Есть ли способ сделать наоборот, чтобы максимизировать? Похоже, :simalt ~xработает только в одну сторону на Windows7x64 ENG.
TankorSmash

1
~xпроисходит от сочетания клавиш для пункта меню. Проверьте ярлык для варианта желания и попробуйте его. Может быть, это Rмагазин?
Гжегож Герлик

@GrzegorzGierlik Спасибо, ты прав. Я не понимал, что simaltзначит «имитировать нажатие Alt». Спасибо.
TankorSmash

10

Лучший способ, если вы беспокоитесь о кросс-платформенной совместимости set lines=999 columns=999. Я нашел это в вики Vim , и, несмотря на то, что он не идеален, это лучшее решение, если вам нужно работать на разных операционных системах.


Можете ли вы совместить это с au GUIEnter * simalt ~ x ??
snitzr

Да, создание условия в вашем vimrc, чтобы узнать, Windows это или Linux. Поскольку я в основном использую Linux, я собираюсь добавить этот конфиг позже.
Кто-то все еще использует тебя MS-DOS

Этот подход не работает для меня в GNOME 3. Когда окно уже не развернуто, это замедляет Vim на некоторое время (не происходит, когда я максимизирую использование оконного менеджера), и оно оставляет небольшой край над окно открылось, потому что высота моего экрана не кратна высоте строки. Когда окно было развернуто по вертикали (но не по горизонтали) путем перетаскивания окна влево или вправо от экрана, это не будет иметь никакого эффекта.
Андрес Риофрио

@AndresRiofrio В этих ситуациях (в среде с несколькими рабочими столами в Linux) я серьезно думаю об использовании devilspie . Это стороннее решение, я знаю, но оно может работать. Я использовал его в некоторых других приложениях, которые я хотел бы развернуть в максимизации.
Кто-то все еще использует тебя MS-DOS

Это также заставляет окно становиться огромным, если вы максимизируете его.
Кевин Кокс,

6

Трюк с:

au GUIEnter * simalt ~x

зависит от языка Windows.

Для моей польской версии работает:

au GUIEnter * simalt ~ s

Где sпроисходит от Mak_s_ymalizuj.

Так что, если ~xне работает, нажмите, ALT+SPACEчтобы открыть меню Окно и проверьте ярлык для опции меню Окно Ma_x_imize .


1
И ~ n для французского ("Agra & ndir")
Себастьян РоккаСерра

1
И ~ м для норвежца
Бьярте Брандт

4

Вы можете использовать плагин maximize.dll для полноэкранного просмотра Vim (если вы используете Windows). Просто скопируйте maximize.dll в vimdirectory/pluginпапку.



3

В GNU / Linux

В GNU / Linux, самый простой способ для вызова gvimс -geometryопцией. Например:

gvim -geometry 1336x744

Это не удобно, если вы хотите использовать одну и ту же команду запуска на разных машинах.

Вот то, что я использую сейчас на нескольких машинах без каких-либо проблем. Просто добавьте это где-нибудь высоко в своем .vimrc.

if has("gui_running")
  " GUI is running or is about to start.
  " Maximize gvim window (for an alternative on Windows, see simalt below).
  set lines=999 columns=999
else
  " This is console Vim.
  if exists("+lines")
    set lines=50
  endif
  if exists("+columns")
    set columns=100
  endif
endif

Источник: http://vim.wikia.com/wiki/Maximize_or_set_initial_window_size


Для Linux это, вероятно, лучший вариант. в .zshrc сделайте псевдоним v = "gvim -geometry 1366x768", и все готово.
Танель Таммик

@TanelTammik Посмотрите еще раз на мой ответ. Я существенно отредактировал его, чтобы показать лучшее решение, которое я использую сейчас. Спасибо за голосование.
Серж Строобандт

2

ОБНОВЛЕНИЕ: для пользователей Linux, я нашел гораздо лучшее решение, которое действительно максимизирует окно: https://stackoverflow.com/questions/12448179/how-to-maximize-vims-windows-on-startup-with-vimrc

Единственная зависимость есть wmctrl, но ее стоит установить.

Так, для Windows я использую плагин maximize.dll (как уже упоминалось @fatihturan), а для Linux я использую wmctrl. Большой!

(но я действительно не могу понять, почему в 2014 году у gvim не было этой функции "из коробки")


Старый ответ:


Для меня простой взлом :set lines=999 columns=999работает плохо на моем Linux Mint MATE с двумя мониторами. Я обычно открывал gvim на дополнительном мониторе, панели задач нет, поэтому Vim должен занимать весь экран. Но если я это сделаю :set lines=999 columns=999, gvim сжимает эти значения до размера основного монитора, поэтому под окном gvim есть небольшая область, которая не используется. Лучше, если я установлю реальное количество строк / столбцов: просто разверните окно «вручную» и введите :set lines?и :set columns?, чтобы получить необходимые значения. Поскольку я использую два монитора, мне также нужно указать позицию окна, поэтому введите, :winposчтобы получить текущую позицию окна.

И вторично, лучше не просто помещать эти настройки в .vimrc, а выполнять их при загрузке графического интерфейса.

Итак, окончательный рецепт:

1) максимизировать GVIM вручную и наберите три команды , чтобы получить фактические значения: :winpos, :set lines?и :set columns?.

2) добавить это к .vimrc:

function Maximize()

   " put your actual values below
   winpos 0 0
   set lines=78
   set columns=237

endfunction

autocmd GUIEnter * call Maximize()

Интересный. Возможно, вы можете динамически получать значения строк и столбцов в vimscript, поэтому этот конфиг будет работать на всех устройствах.
Кто-то все еще использует вас MS-DOS

1

Убунту (16.04)

Лучше пусть оконный менеджер выполнит эту задачу, по крайней мере, в Ubuntu , он будет работать в полноэкранном режиме, gvimа не в увеличенном окне, предоставляя вам больше места. Конечно, это решение зависит от платформы, а не кроссплатформенно, но это гораздо лучший вариант для Ubuntu . Вы даже можете установить, gvimчтобы открыть в определенном окне просмотра .

Compiz Config Settings Manager -> Поместить Windows -> Фиксированное размещение окон -> Windows с режимом фиксированного размещения -> Новый

 Windows class=Gvim
 Mode    Maximize

Если у вас нет диспетчера настроек Compiz Config:

sudo apt install compizconfig-settings-manager

1

Если вы хотите, чтобы vim полностью работал в Windows (как на картинке), то этот плагин gvimfullscreen_win32настоятельно рекомендуется.

Плагин обеспечивает более легкий доступ к полноэкранному режиму и не отвлекает внимание. Вы также можете добавить, :set go=чтобы получить больше места. Вот скриншот (Gvim7.4 на Windows 8.1):

введите описание изображения здесь


0

Я верю, что вы можете сделать это по-своему, $HOME/.vimrcчтобы достичь того, что вы хотите:

if has("gui_running")
     set fuoptions=maxvert,maxhorz
     au GUIEnter * set fullscreen
 endif

Вы можете подтвердить, где применяется полноэкранный режим, например:

:verbose set nofullscreen?
 fullscreen
       Last set from ~/.vim_runtime/my_configs.vim

Похоже, это работает только для MacVim.
Майкл Yoo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.