Come avviare gVim massimizzato?


38

Come fare in modo che gVim massimizzi automaticamente la sua finestra quando la apro? E una soluzione multipiattaforma, sto cercando di utilizzare le stesse configurazioni in una macchina Linux e Windows ...

Ho provato l'hacking :set lines=999 columns=999, quasi funziona, ma la finestra non è ingrandita, appena ridimensionata e perdo alcune righe / colonne.


3
Questo è il modo più portatile che conosco. Potresti approfondire "ma la finestra non è ingrandita, solo ridimensionata e perdo alcune righe / colonne". La massimizzazione è afaik, ridimensionando fino ai bordi. E non credo di aver mai perso una riga / passo in quel modo.
Rook,

@Idigas: corretto, la massimizzazione è semplicemente "ridimensiona fino a riempire lo spazio disponibile (non copre le barre degli strumenti, ecc.)", In termini di wm-speak :)
Akira,

L'impostazione dell'hack sopra non ridimensiona fino ai bordi. Sto iniziando a pensare che l'approccio migliore aggiungerà un if nel mio vimrc: se avesse Windows, chiama una configurazione, altrimenti chiama un'altra configurazione.
Qualcuno usa ancora il tuo MS-DOS

Risposte:


30

Dal wiki di Vim :

au GUIEnter * simalt ~x

Funzionerà su Windows; Non sono sicuro di quali combinazioni di tasti avresti bisogno su Gnome / KDE.


Questo non ha funzionato per me su Windows 7 Ultimate.
Matt Alexander,

2
Dipende anche tristemente dalla lingua del sistema operativo. Per le versioni francesi di Windows, diventa au GUIEnter * simalt ~n.
Il

C'è un modo per fare il contrario, per non massimizzare? Sembra :simalt ~xfunzionare solo in un modo su Windows7x64 ENG.
TankorSmash,

1
~xviene dalla scorciatoia da tastiera per l'opzione di menu. Controlla il collegamento per l'opzione desiderio e provalo. Forse è Restore?
Grzegorz Gierlik,

@GrzegorzGierlik Grazie, hai ragione. Non mi rendevo conto che simaltsignificava "simulare il tasto Alt". Grazie.
TankorSmash

10

Il modo migliore se sei preoccupato per la compatibilità multipiattaforma è set lines=999 columns=999. L'ho trovato nel Wiki di Vim e, nonostante non sia perfetto, è la soluzione migliore se devi lavorare su diversi sistemi operativi.


Puoi combinarlo con au GUIEnter * simalt ~ x ??
Snitzr

Sì, creando una condizione nel tuo vimrc per sapere se è Windows o Linux. Dato che sto usando principalmente Linux, aggiungerò questa configurazione in seguito.
Qualcuno usa ancora il tuo MS-DOS il

Questo approccio non funziona per me con GNOME 3. Quando la finestra era già non ingrandita, questo rallenterebbe Vim per un po '(non succede quando massimizzo usando il gestore delle finestre) e lascerà un piccolo margine sopra la finestra è stata scoperta, perché l'altezza del mio schermo non è un multiplo perfetto dell'altezza della linea. Quando la finestra è stata ingrandita verticalmente (ma non orizzontalmente) trascinando la finestra a sinistra o a destra dello schermo, ciò non avrà alcun effetto.
Andres Riofrio,

@AndresRiofrio Per queste situazioni (più ambienti desktop in Linux), sto seriamente pensando di usare devilspie . È una soluzione di terze parti, lo so, ma potrebbe funzionare. L'ho usato in alcune altre applicazioni che volevo essere a massima apertura.
Qualcuno usa ancora MS-DOS il

Questo fa sì che la finestra diventi enorme se non la massimizzi.
Kevin Cox,

6

Trucco con:

au GUIEnter * simalt ~x

dipende dalla lingua di Windows.

Per la mia versione polacca funziona:

au GUIEnter * simalt ~ s

Dove sviene da Mak_s_ymalizuj.

Quindi se ~xnon funziona premere ALT+SPACEper aprire il menu Finestra e controllare il collegamento per l' opzione di menu Finestra Ma_x_imize .


1
E ~ n per il francese ("Agra & ndir")
Sébastien RoccaSerra,

1
E ~ m per il norvegese
Bjarte Brandt,

4

È possibile utilizzare maximize.dll plug-in per fullscreen veiw su Vim (se si utilizza Windows). Basta copiare maxim.dll nella vimdirectory/plugincartella.



3

Su GNU / Linux

Su GNU / Linux, il modo più semplice è invocare gvimcon l' -geometryopzione. Per esempio:

gvim -geometry 1336x744

Questo non è utile se si desidera riutilizzare lo stesso comando di avvio su macchine diverse.

Ecco cosa sto usando ora su diverse macchine senza problemi. Aggiungilo da qualche parte in alto nel tuo .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

Fonte: http://vim.wikia.com/wiki/Maximize_or_set_initial_window_size


Per Linux questa è probabilmente l'opzione migliore. in .zshrc do alias v = "gvim -geometry 1366x768" e sei pronto.
Tanel Tammik,

@TanelTammik Dai un'occhiata di nuovo alla mia risposta. L'ho modificato sostanzialmente per mostrare la migliore soluzione che sto usando ora. Grazie per il voto positivo.
Serge Stroobandt,

2

AGGIORNAMENTO: per gli utenti di Linux, ho trovato una soluzione molto migliore che massimizza davvero la finestra: https://stackoverflow.com/questions/12448179/how-to-maximize-vims-windows-on-startup-with-vimrc

L'unica dipendenza è wmctrl, ma vale la pena installarla.

Così, per le finestre io uso maximize.dll plug-in (come già detto da @fatihturan), e per l'uso di linux ho wmctrl. Grande!

(ma non riesco davvero a capire perché nel 2014 gvim non abbia questa funzionalità pronta all'uso)


Vecchia risposta:


Per me, il semplice hacker :set lines=999 columns=999funziona male sul mio MATE Linux MATE con due monitor. Di solito ho aperto gvim sul monitor secondario, non ci sono barre delle applicazioni, quindi Vim dovrebbe occupare l'intero schermo. Ma se lo faccio :set lines=999 columns=999, gvim riduce questi valori alle dimensioni del monitor principale , quindi, ci sono una piccola area sotto la finestra di gvim inutilizzata. È meglio se imposto il conteggio di righe / colonne reali: basta ingrandire la finestra "a mano" e digitare :set lines?e :set columns?, per ottenere i valori necessari. Poiché utilizzo due monitor, devo anche specificare la posizione della finestra, quindi digitare :winposper ottenere la posizione corrente della finestra.

E secondario, è meglio non solo mettere queste impostazioni su .vimrc, ma eseguirle quando viene caricata la GUI.

Quindi, ricetta finale:

1) massimizzare il gvim a mano e digitare tre comandi per ottenere i valori effettivi: :winpos, :set lines?e :set columns?.

2) aggiungi questo a .vimrc:

function Maximize()

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

endfunction

autocmd GUIEnter * call Maximize()

Interessante. Forse puoi ottenere dinamicamente i valori di linee e colonne in vimscript, quindi questa configurazione funzionerà su tutti i dispositivi.
Qualcuno usa ancora il tuo MS-DOS il

1

Ubuntu (16.04)

Meglio lasciare che il gestore delle finestre faccia questo compito, almeno in Ubuntu , sarà a schermo intero gviminvece di massimizzare la finestra, dandoti più spazio. Naturalmente questa soluzione dipende dalla piattaforma e non è multipiattaforma, ma è un'opzione molto migliore per Ubuntu . Puoi persino impostare gviml'apertura su una finestra specifica .

Compiz Config Settings Manager -> Posiziona Windows -> Posizionamento fisso della finestra -> Windows con modalità di posizionamento fisso -> nuovo

 Windows class=Gvim
 Mode    Maximize

Se non si dispone di Compiz Config Settings Manager:

sudo apt install compizconfig-settings-manager

1

Se vuoi che vim raggiunga lo schermo intero in Windows a fondo (come nella foto), il plugin gvimfullscreen_win32è altamente raccomandato.

Il plug-in consente un accesso più semplice a una modalità a schermo intero e un ambiente privo di distrazioni. Puoi anche aggiungere :set go=per guadagnare più spazio. Ecco uno screenshot (Gvim7.4 su Windows 8.1):

inserisci qui la descrizione dell'immagine


0

Credo che tu possa farlo nel tuo $HOME/.vimrcper ottenere ciò che vuoi:

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

Puoi confermare dove viene applicato lo schermo intero in questo modo:

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

Sembra che funzioni solo per MacVim.
Michael Yoo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.