Come posso ottenere gvim per iniziare al massimo in Windows?


15

Vorrei che i miei redattori mi dessero il maggior numero possibile di proprietà dello schermo poiché aumenta la mia capacità di vedere la maggior parte del codice in una volta.

Il problema è che gvimsembra darmi una finestra 80x25 o ricordare l'ultima dimensione non ingrandita, a seconda di come la invoco.

Quindi, come posso costringerlo ad essere il più grande possibile, indipendentemente da qualsiasi stato ricordato?


In effetti consiglierò il plug-in github.com/xolox/vim-shell , che funziona per gvim su win32 e win64 entrambi, con <F11> Alterna tra modalità schermo intero / normale
van abel

Risposte:


21

Puoi mettere questa linea:

autocmd GUIEnter * simalt ~x

alla fine del tuo gvimrcfile.

Questo metodo utilizza la autocmdfunzione per tessere la sua magia. Il comando autocmd GUIEnter *specifica un comando da eseguire dopo aver avviato correttamente la GUI per un modello di file di *(qualsiasi file).

Il comando che eseguirà, simalt ~x(solo nelle varianti di Windows vim), simulerà la sequenza di tasti Alt Spacebarx, che sono le sequenze di tasti che ingrandiranno la finestra.

Puoi anche usare la versione abbreviata:

au GUIEnter * sim ~x

ma preferisco me stesso comandi completamente espansi, soprattutto perché è il tipo di cose che hai impostato e dimenticato, inserendo una sola volta durante l'installazione vimsu un sistema Windows.


Tieni presente che si tratta di simulare sequenze di tasti per raggiungere i suoi scopi. Sulle versioni inglesi, funzionerà bene poiché Alt-SpaceXè come massimizzare una finestra.

Se ciò non funziona per te, dovresti esaminare le sequenze di tasti in qualsiasi locale che stai utilizzando. Ad esempio, la versione francese utilizzerà Agrandir(ingrandire) con il ntasto control control, quindi il comando di cui avresti bisogno è:

autocmd GUIEnter * simalt ~n

(che minimizzerebbe effettivamente la tua finestra in inglese).

Se sei un'altra variante (non inglese, non francese), basta premere Alt-Spacesu una finestra per visualizzare il menu di sistema e scoprire quale chiave deve essere utilizzata (dovrebbe essere sottolineata).


Per trovare il tuo gvimrcfile per aggiungere qualsiasi comando ti occorra, puoi inserire:

:version
:echo $VIM
:echo $HOME

e dovresti ottenere un elenco di file di avvio e variabili come:

system gvimrc file = "$VIM/gvimrc"
  user gvimrc file = "$HOME/_gvimrc"

C:\Program Files (x86)\Vim
C:\Users\Pax\Documents

Nella tua versione abbreviata di autocmd manca il file *.
Jamessan,

Questo metodo non funziona per me: invece di ingrandire la finestra apre un menu a comparsa che consente di ripristinare, spostare, minimizzare, massimizzare (...) la finestra. Sto usando Windows 7 SP1 e gvim 7.4.711. Come posso farlo funzionare?
statox

@statox, è quello che vedresti se lo avessi interrotto xdalla fine. Assicurati di avere il testo completoau GUIEnter * sim ~x .

@paxdiablo Non sono sicuro di aver copiato l'intera riga (sia la versione lunga che quella corta) da aua ~x. C'è un carattere bianco che mi manca o qualcosa del genere?
statox

@statox, quando hai una finestra gvim aperta e fai clic con il mouse sul pulsante di sistema (l'icona vim più in alto a sinistra, sopra il menu del file), vedi un ingrandimento? Quando quel menu di sistema è aperto, si massimizza quando si preme x?

7

In alternativa alla finestra ingrandita, perché non guadagnare più spazio per un'esperienza di editing multiwindows full vim con una modalità FULL SCREEN con avvio automatico? ;-)

Schermata A SCHERMO INTERO del risultato finale (= TUTTI I VIDEO capacità pixel): schermata video a schermo intero

Secondo me è meglio di un massimo di Windows: uno SCHERMO COMPLETO completo (come facevo con puTTY con ALT-Enter durante la modifica sul terminale unix remoto ...)

Spiego come:

Passo 1

Installa l'eccellente utility per consentire l'utilizzo a schermo intero in gvim su Windows:

https://github.com/derekmcloughlin/gvimfullscreen_win32/tree/master

Devi scaricare il file DLL gvimfullscreen.dll e inserirlo nella stessa directory in cui gvim.exe è ($ VIM / vim74 con gVim versione 7.4). Per scaricare la DLL (senza usare git):

https://github.com/derekmcloughlin/gvimfullscreen_win32/raw/master/gvimfullscreen.dll

Passo 2

Modifica il file .vimrc (all'interno di vim:) :e $HOME/.vimrc, inserendo questi comandi per l'avvio automatico a schermo intero e consentendo un tasto funzione F11 per alternare le modalità tra 3 stati: schermo intero, finestra ingrandita, dimensioni finestre originali / predefinite:

"run the command immediately when starting vim
autocmd VimEnter * call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)

" activate/deactivate full screen with function key <F11>  
map <F11> <Esc>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>

Passaggio 3

Modifica il file .gvimrc (all'interno di vim :):split $HOME/.gvimrc inserendo questi comandi per evitare la barra dei menu e cose inutili:

set guioptions-=m  "remove menu bar
set guioptions-=T  "remove toolbar
set guioptions-=r  "remove right-hand scroll bar
set guioptions-=L  "remove left-hand scroll bar

Esiste uno schermo gvimwin64full? o possiamo compilarlo usando il progetto su github?
van abel,


2

Da :help 'lines':

Numero di righe della finestra di Vim.
[...]
Quando Vim è in esecuzione nella GUI o in una finestra ridimensionabile, l'impostazione di questa opzione comporta la modifica delle dimensioni della finestra.
[..]
Puoi usare questo comando per ottenere la finestra più alta possibile:
:set lines=999

L' columnsopzione fa lo stesso, ad eccezione della larghezza (in caratteri).

Quindi, ad esempio, potresti metterlo nel tuo file vimrc:

set lines=55
set columns=120

Questo non è lo stesso di essere massimizzato (anche se si utilizza il 999valore come descritto sopra), poiché "essere massimizzato" è un flag speciale messo sulla finestra e cambia leggermente alcune operazioni (come lo spostamento), ma dovrebbe risolvere il problema di avere una finestra di dimensioni 80x25 piccole per impostazione predefinita.


Non è poi così male, anche se dà una 234x56finestra sul mio sistema mentre massimizzare dà 236x57. Tuttavia, essere brevi due colonne e una riga di quelle dimensioni non è un grosso problema, soprattutto per qualcosa che potrebbe funzionare anche su piattaforme non Windows, anche se in realtà non l'ho testato. Stasera darò un'occhiata quando torno a casa nella mia amata scatola Debian :-)

Con il mio Debian, la finestra di default è 200x50, impostando sia le righe che le colonne su 999 in qualsiasi di vimse stesso, file rc o con gvim -c 'set them'mi dà 236x61 e massimizzando dà 237x61, quindi ancora più vicino che sotto Windows. È interessante notare che gvim -geometry 999x999mi dà una finestra ingrandita con dimensioni leggermente più grandi in modo che possa essere migliore per i non Windows, anche se sospetto che sarà più difficile garantire che tutti i metodi di invocazione lo utilizzino. Peccato che non ci sia una cosa di tipo simalt per le piattaforme non Win.

Tuttavia, vale la pena un rappresentante poiché si avvicina abbastanza ed è più portatile del metodo di sola vittoria. A proposito, usando 9999x9999 come geometria impazzisce dal vimmomento che non gli piacciono le finestre con dimensioni superiori a 64K pixel (la geometria è celle di caratteri in questo caso piuttosto che pixel). 999x999 sembra funzionare bene. Non sono sicuro di come andrebbe in un sistema multi-monitor.

Sì, questo metodo non è perfetto, ma come hai già detto, è multipiattaforma e potrebbe anche essere più veloce (l'esecuzione di strumenti da riga di comando all'avvio può causare un po 'di ritardo su Windows Vim, almeno, è stato il caso quando l'ho usato qualche anno fa).
Martin Tournoij,

Impostando le colonne / linee su si 160 x 42ottiene una forma di finestra che si avvicina al rapporto aureo , e ottieni la bellezza di 42!
roblogic

0

Oltre ai comandi specifici di gVim nelle altre risposte, ci sono un paio di funzionalità standard di Windows per avviare qualsiasi applicazione ingrandita.

Se stai avviando gVim da un collegamento, ad esempio dal menu Start o dal desktop, puoi modificare le proprietà del collegamento per avviare Vim ingrandito. Fare clic con il tasto destro del collegamento, selezionare Proprietà e selezionare Ingrandito dall'elenco a discesa Esegui. Tuttavia, ciò influirà solo su quel collegamento, quindi gVim si aprirà comunque in una piccola finestra se avviato da un altro collegamento, dalla finestra di dialogo Esegui o dalla riga di comando.

Se si avvia gVim dalla riga di comando o un file batch, è possibile utilizzare di CMD startcomando: start "" /max "C:\Program Files (x86)\Vim\vim73\gvim.exe". ( ""È necessario se viene citato il percorso di gvim.exe. Se si utilizza un percorso non quotato senza spazi, è possibile ometterlo:. start /max C:\Progra~2\Vim\vim73\gvim.exe)


Non so come sia il startcomando predefinito , ma ho sovrascritto il mio PERCORSO e ora c'è quello di Mingsys start, quindi state attenti a eseguire quello giusto
TankorSmash

Ho provato questo ("da una scorciatoia ... seleziona Ingrandita"). La finestra lampeggiò e poi apparve della stessa dimensione che aveva appena avviato da una shell cmd DOS. Per essere onesti, ho nel mio .vimrc dei comandi che impostano esplicitamente una dimensione (linee / colonne), quindi sospetto che quest'ultimo stia scavalcando il tentativo di massimizzare.
ricco p

Questo genere di cose esiste anche in funzione di alcuni gestori di finestre Linux. Ad esempio, mi piace che le mie finestre Vim siano a tutta altezza, ma due dei miei monitor sono alti 1024 px, mentre quello centrale è alto 1080 px. L'impostazione di Vim per l'avvio ingrandito verticalmente utilizzando il pannello di controllo "Regole finestra" di KDE assicura che gVim si ridimensionerà in modo che corrisponda al suo spostamento da monitor a monitor. (Ha anche il vantaggio aggiuntivo di sovrascrivere l' linesimpostazione, quindi posso lasciarlo nel mio gvimrccome un fallback per i sistemi in cui non ho impostato una tale modifica.)
ssokolow
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.