Utilizzo di Vim / Gvim con più finestre della GUI


25

È possibile avere 2 o più finestre (G) vim per la stessa sessione o almeno condividere alcuni buffer. Qui, "finestra" si riferisce a una finestra Gnome (o KDE, o Windows ecc.), Non a una finestra VIM.

Uso due monitor con xinerama e voglio aprire due finestre della GUI separate invece di avere un unico enorme che si estende su più schermi.


hai provato: sp <nomefile> o: vsp <nomefile>? Questi sono i comandi di suddivisione delle finestre di vim e sono fantastici. Ecco un po 'di documentazione
— Tom Stephens,

2
@Tom Stephens: e questo aiuta .. come? OP vuole posizionare le finestre vim di ONE istanza vim sui suoi monitor. OP non desidera che UNA istanza vim sia distribuita su tutti i monitor.
— Akira,

1
Questo è importante; l'editor non dovrebbe davvero fare la propria gestione delle finestre.
— Sam Watkins,

Risposte:


19

Attualmente gVim non può avere finestre 'toplevel' separate per lo stesso processo / sessione. Esiste un elemento TODO per implementare un sistema di comunicazione tra processi tra più istanze di Vim per farlo comportare come se i processi separati fossero unificati. (Vedi :help todoe cerca "top-level".)


7 anni dopo, Vim8, questo è ancora nella lista delle cose da fare.
— Al.G.

1
Effettua una donazione in beneficenza Vim e ottieni voti, quindi vota per la funzione: vim.org/sponsor/index.php
— Heptite

3

Dai un'occhiata allo schermo GNU usato insieme a Vim.

Prima finestra, avvia gnu screen e vim

xterm
screen -S edit
vim

Seconda finestra, connettiti alla sessione schermo:

xterm
screen -x edit

Incredibilmente utile su grandi desktop xinerama, più schermi virtuali o sessioni VNC. Una sessione di Vim, con molte schede, è tutto ciò che serve.

- Tom


1
Indica il breve e breve tutorial, anche se lo definirei solo leggermente utile, perché non posso modificare diversi buffer della stessa sessione in questo modo.
— Atilla Filiz,

è interessante notare che questo è un punto in cui lo schermo vince su tmux, - in tmux collegarsi alla stessa sessione da un client diverso significa solo vedere le cose rispecchiate in entrambi i casi ... Sto prendendo in considerazione una combinazione empia dei due ma non ho abbastanza capito cosa voglio ancora fare!
— JonnyRaa,

2

È passato del tempo da quando hai posto la tua domanda e molte cose sono migliorate. Nvidia ha un supporto driver molto migliore per più monitor su Linux.
Ora ho smesso di usare Gvim da quando sono passato a KDE: ora sto usando vim-qt. Ti consente di aprire più istanze, nel caso in cui non desideri utilizzare vim nel terminale.

modificare: La mia configurazione


Lo sto provando ora, come posso usare queste istanze multiple? Sembra un normale gvim con una faccia leggermente diversa per me.
— Atilla Filiz,

Puoi semplicemente avviare due istanze di vim-qt in modo da avere una finestra per ciascuno dei tuoi schermi e alt-tab tra di loro o assegnare tasti di scelta rapida a ciascuna finestra. Vim-qt è scritto per qt, quindi gli ambienti desktop basati su qt come KDE possono utilizzare meglio Windows. Ciò significa che puoi avere diverse finestre grafiche diverse aperte e che le tue finestre grafiche possono essere a schermo intero. Che non era possibile con gvim normale.
— jollyroger,

6
Grazie per aver dedicato del tempo ma questo non è quello che volevo. Volevo accedere agli stessi buffer da due finestre della GUI separate. E questo non è possibile in quanto la condivisione del buffer è ancora nella lista delle cose da fare di vim (vedi la risposta accettata).
— Atilla Filiz,

1

Puoi avere tutte le sessioni vi (m) che desideri utilizzando finestre terminali separate per ognuna.

Per quanto riguarda il fatto di non averli estesi, suppongo che li stai mettendo a schermo intero e quindi si sta espandendo su entrambi i monitor in quanto è impostato per estendere il desktop. Non massimizzarlo e regolare manualmente le dimensioni della finestra del terminale o gvim.

Se ho perso il segno, ti preghiamo di provare a elaborare un po 'di più.

Cosa intendi per finestra di VIM?

modificare: Ecco una foto del mio schermo con 4 istanze di vim in esecuzione

Spero che Heptite lo abbia colpito, perché ero un po 'perso con questo.


1
È esattamente quello che sto facendo ora, ridimensionarli manualmente per estendere due monitor e poi: vsplit ma sembra brutto e a volte voglio vedere alcuni buffer su diversi desktop virtuali o coprire un monitor con qualcos'altro. Quello che voglio è usare due terminali differnet e accedere comunque agli stessi buffer da entrambi.
— Atilla Filiz,

Ora capisco. Sono contento di vedere che Heptite ti ha risposto.
— Dan M.
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.