Jak uruchomić gVim zmaksymalizowany?


38

Jak sprawić, by gVim automatycznie maksymalizował swoje okno po otwarciu? I rozwiązanie międzyplatformowe, próbuję użyć tych samych konfiguracji na komputerze z systemem Linux i Windows ...

Próbowałem włamać się :set lines=999 columns=999, prawie działa, ale okno nie jest zmaksymalizowane, po prostu zmienia rozmiar i tracę niektóre wiersze / kolumny.


3
To najbardziej przenośny sposób, jaki znam. Czy mógłbyś rozwinąć temat „ale okno nie jest zmaksymalizowane, tylko zmieniono rozmiar i tracę niektóre wiersze / kolumny”. Maksymalizacja jest afaik, zmiana rozmiaru do krawędzi. I nie sądzę, żebym kiedykolwiek stracił w ten sposób wiersz / col.
Gawron

@Idigas: poprawne, maksymalizacja to po prostu „zmiana rozmiaru aż do wypełnienia dostępnej przestrzeni (nie zakrywającej pasków narzędzi itp.)”, Pod względem wm-speak :)
akira

Ustawienie powyższego hacka nie zmienia rozmiaru aż do krawędzi. Zaczynam myśleć, że lepszym podejściem będzie dodanie if w moim vimrc: gdyby to było windows, wywołaj config, inaczej zadzwoń do innej konfiguracji.
Ktoś nadal cię używa MS-DOS

Odpowiedzi:


30

Z wiki Vima :

au GUIEnter * simalt ~x

To zadziała w systemie Windows; Nie jestem pewien, jakich kombinacji klawiszy potrzebujesz w Gnome / KDE.


Nie działało to dla mnie w systemie Windows 7 Ultimate.
Matt Alexander

2
Niestety zależy to również od języka systemu operacyjnego. W przypadku francuskich wersji Windows staje się au GUIEnter * simalt ~n.
ereOn

Czy istnieje sposób, aby zrobić coś przeciwnego, aby zmaksymalizować? Wygląda na to, :simalt ~xże działa tylko w jeden sposób na Windows7x64 ENG.
TankorSmash,

1
~xpochodzi ze skrótu klawiaturowego do opcji menu. Sprawdź opcję skrótu dla pożądanego i spróbuj. Może to Restore?
Grzegorz Gierlik,

@GrzegorzGierlik Dzięki, masz rację. Nie zdawałem sobie sprawy, że simaltoznacza to „symulację naciśnięcia klawisza alt”. Dzięki.
TankorSmash,

10

Najlepszym sposobem, jeśli martwisz się o zgodność między platformami, jest set lines=999 columns=999. Znalazłem go na Wiki Vima i pomimo tego, że nie jest idealny, jest najlepszym rozwiązaniem, jeśli chcesz pracować na różnych systemach operacyjnych.


Czy możesz to połączyć z GUInter * simalt ~ x ??
snitzr

Tak, tworząc warunek w vimrc, aby wiedzieć, czy jest to Windows, czy Linux. Ponieważ używam głównie Linuksa, dodam tę konfigurację później.
Ktoś nadal cię używa MS-DOS

Podejście to nie działa dla mnie w GNOME 3. Kiedy okno nie było już zmaksymalizowane, spowalnia Vima na chwilę (nie dzieje się, gdy maksymalizuję za pomocą menedżera okien) i pozostawia trochę przewagi okno odsłonięte, ponieważ wysokość mojego ekranu nie jest idealną wielokrotnością wysokości linii. Gdy okno zostało zmaksymalizowane w pionie (ale nie w poziomie) poprzez przeciągnięcie okna na lewą lub prawą stronę ekranu, nie będzie to miało wpływu.
Andres Riofrio

@AndresRiofrio W tych sytuacjach (wiele środowisk pulpitu w Linuksie) poważnie myślę o użyciu devilspie . Wiem, że to rozwiązanie innej firmy, ale może działać. Użyłem go w innych aplikacjach, których chciałem być otwarty. Maksymalizacja.
Ktoś nadal cię używa MS-DOS

Powoduje to również, że okno staje się ogromne, jeśli cofniesz jego maksymalizację.
Kevin Cox,

6

Sztuczka z:

au GUIEnter * simalt ~x

zależy od języka Windows.

Dla mojej polskiej wersji działa:

au GUIEnter * simalt ~ s

Skąd spochodzi Mak_s_ymalizuj.

Więc jeśli ~xnie działa, naciśnij, ALT+SPACEaby otworzyć menu Okno i sprawdź skrót do opcji menu Ma_x_imize Okno .


1
And ~ n dla francuskiego („Agra & ndir”)
Sébastien RoccaSerra

1
I ~ m dla norweskiego
Bjarte Brandt

4

Możesz użyć wtyczki maximize.dll dla pełnego ekranu veiw na Vimie (jeśli używasz Windowsa). Po prostu skopiuj maximize.dll do vimdirectory/pluginfolderu.



3

W systemie GNU / Linux

W systemie GNU / Linux najłatwiej jest wywołać gvim-geometryopcję. Na przykład:

gvim -geometry 1336x744

Nie jest to przydatne, jeśli chcesz ponownie użyć tego samego polecenia startu na różnych komputerach.

Oto, czego używam teraz na kilku komputerach bez żadnych problemów. Po prostu dodaj go gdzieś wysoko w swoim .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

Źródło: http://vim.wikia.com/wiki/Maximize_or_set_initial_window_size


Dla Linuksa jest to prawdopodobnie najlepsza opcja. w .zshrc do alias v = "gvim -geometry 1366x768" i jesteś na dobre.
Tanel Tammik

@TanelTammik Spójrz jeszcze raz na moją odpowiedź. Zredagowałem go znacznie, aby pokazać lepsze rozwiązanie, którego teraz używam. Dzięki za głosowanie.
Serge Stroobandt

2

AKTUALIZACJA: dla użytkowników Linuksa znalazłem znacznie lepsze rozwiązanie, które naprawdę maksymalizuje okno: https://stackoverflow.com/questions/12448179/how-to-maximize-vims-windows-on-startup-with-vimrc

Jedyną zależnością jest wmctrl, ale warto ją zainstalować.

Tak więc dla Windows używam wtyczki maximize.dll (jak już wspomniano przez @fatihturan), a dla Linuksa używam wmctrl. Świetny!

(ale naprawdę nie rozumiem, dlaczego w 2014 roku gvim nie ma tej funkcji od razu po wyjęciu z pudełka)


Stara odpowiedź:


Dla mnie zwykły hack :set lines=999 columns=999działa źle na moim Linux Mint MATE z dwoma monitorami. Zazwyczaj gvim otwierał się na drugim monitorze, nie ma paska zadań, więc Vim powinien zajmować cały ekran. Ale jeśli to zrobię :set lines=999 columns=999, gvim zmniejsza te wartości do rozmiaru głównego monitora, dlatego pod oknem gvim jest niewielki obszar nieużywany. Lepiej jest ustawić rzeczywistą liczbę wierszy / kolumn: po prostu zmaksymalizuj swoje okno „ręcznie” i wpisz :set lines?i :set columns?, aby uzyskać potrzebne wartości. Ponieważ używam dwóch monitorów, muszę również określić pozycję okna, więc wpisz, :winposaby uzyskać bieżącą pozycję okna.

Po drugie, lepiej nie tylko ustawić te ustawienia .vimrc, ale wykonać je po załadowaniu GUI.

Ostateczny przepis:

1) zmaksymalizować gvima ręcznie i wpisać trzy polecenia, aby uzyskać rzeczywiste wartości: :winpos, :set lines?i :set columns?.

2) dodaj to do .vimrc:

function Maximize()

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

endfunction

autocmd GUIEnter * call Maximize()

Ciekawy. Być może możesz dynamicznie uzyskać wartości wierszy i kolumn w vimscript, więc ta konfiguracja będzie działać na wszystkich urządzeniach.
Ktoś nadal cię używa MS-DOS

1

Ubuntu (16.04)

Lepiej pozwól menedżerowi okien wykonać to zadanie, przynajmniej w Ubuntu , wyświetli pełny ekran gvimzamiast maksymalizować okno, dając ci więcej miejsca. Oczywiście to rozwiązanie jest zależne od platformy i nie obejmuje wielu platform, ale jest znacznie lepszą opcją dla Ubuntu . Możesz nawet ustawić gvimotwieranie w określonej rzutni .

Compiz Config Settings Manager -> Umieść Windows -> Naprawiono umieszczenie okna -> Windows z ustawionym trybem umieszczania -> nowy

 Windows class=Gvim
 Mode    Maximize

Jeśli nie masz menedżera ustawień Compiz Config:

sudo apt install compizconfig-settings-manager

1

Jeśli chcesz, aby vim dokładnie osiągnął pełny ekran w systemie Windows (jak na zdjęciu), gvimfullscreen_win32zdecydowanie zalecamy wtyczkę .

Wtyczka umożliwia łatwiejszy dostęp do trybu pełnoekranowego i środowiska wolnego od zakłóceń. Możesz także dodać, :set go=aby uzyskać więcej miejsca. Oto zrzut ekranu (Gvim7.4 w systemie Windows 8.1):

wprowadź opis zdjęcia tutaj


0

Wierzę, że możesz to zrobić, $HOME/.vimrcaby osiągnąć to, czego chcesz:

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

Możesz potwierdzić, gdzie jest stosowany pełny ekran, w następujący sposób:

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

Wygląda na to, że działa to tylko w MacVim.
Michael Yoo,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.