Як почати gVim максимізовано?


38

Як зробити так, щоб gVim автоматично максимізував це вікно, коли я його відкриваю? І крос-платформенне рішення, я намагаюся використовувати ті самі конфігурації в машинах Linux та Windows ...

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


3
Це найбільш портативний спосіб, який я знаю. Чи можете ви детальніше зупинитися на "але вікно не максимізоване, просто змінено розмір, і я втрачаю кілька рядків / стовпців". Максимізація є afaik, змінюючи розмір до країв. І я не думаю, що я ніколи таким чином не втрачав рядок / коло.
Грак

@Idigas: правильно, максимізація - це просто "змінити розмір, поки він не заповнить доступний простір (не охоплюючи панелі інструментів тощо)", з точки зору wm-speak :)
akira

Налаштування злому вище не змінюється до краю. Я починаю думати, що кращим підходом буде додавання if у мій vimrc: якщо це вікна, викликати конфігурацію, інше, викликати інший конфігурацію.
Хтось досі використовує вас MS-DOS

Відповіді:


30

З Вікі Віма :

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есторе?
Grzegorz Gierlik

@GrzegorzGierlik Спасибі, ти маєш рацію. Я не усвідомлював, що simaltозначає "імітувати натискання клавіш alt". Спасибі.
TankorSmash

10

Найкращий спосіб, якщо ви турбуєтеся про сумісність між платформами set lines=999 columns=999. Я знайшов це у Вікі Вікі , і незважаючи на те, що він не ідеальний, це найкраще рішення, якщо вам потрібно працювати в різних операційних системах.


Чи можете ви поєднати це з 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щоб відкрити меню «Вікно», і перевірте ярлик для параметра меню « Ма_x_imize ».


1
І ~ n для французької ("Agra & ndir")
Sébastien RoccaSerra

1
І ~ m для норвежця
Bjarte Brandt

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 це, мабуть, найкращий варіант. в.
Танел Таммік

@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, а виконувати їх, коли gui завантажується.

Отже, остаточний рецепт:

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

Ubuntu (16.04)

Краще дозвольте менеджеру вікон виконувати це завдання, принаймні в Ubuntu , це буде повноекранним, gvimа не максимальним вікном, даючи вам більше місця. Звичайно, це рішення залежить від платформи і не є кросплатформою, але це набагато кращий варіант для Ubuntu . Ви навіть можете налаштувати gvimвідкриття в певному вікні перегляду .

Менеджер налаштувань Compiz Config -> Місце 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.
Майкл Йо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.