Utilisation de Vim / Gvim avec plusieurs fenêtres GUI

25

Est-il possible d'avoir 2 fenêtres vim (G) ou plus pour la même session, ou au moins de partager des tampons. Ici, "fenêtre" fait référence à une fenêtre Gnome (ou KDE, ou Windows etc.), pas une fenêtre VIM.

J'utilise deux moniteurs avec xinerama et je souhaite ouvrir deux fenêtres GUI distinctes au lieu d'en avoir une énorme unique qui couvre plusieurs écrans.

Atilla Filiz
la source
avez-vous essayé: sp <nomfichier> ou: vsp <nomfichier>? Ce sont les commandes de fractionnement de fenêtres de vim et elles sont géniales. Voici quelques documents
Tom Stephens
2
@Tom Stephens: et ça aide .. comment? OP souhaite positionner les fenêtres vim de ONE instance vim sur ses moniteurs. OP ne veut pas qu'une seule instance de vim soit répartie sur tous les moniteurs.
akira
1
C'est important; l'éditeur ne devrait pas vraiment faire sa propre gestion de fenêtres.
Sam Watkins

Réponses:

19

Actuellement, gVim ne peut pas avoir de fenêtres de «niveau supérieur» distinctes pour le même processus / session. Il existe un élément TODO pour implémenter un système de communication interprocessus entre plusieurs instances Vim afin de le faire se comporter comme si les processus séparés étaient unifiés. (Voir :help todoet rechercher "niveau supérieur".)

Heptite
la source
7 ans plus tard, Vim8, c'est toujours dans la liste des tâches.
Al.G.
1
Faites un don à l'organisme de bienfaisance Vim et obtenez des votes, puis votez pour la fonctionnalité: vim.org/sponsor/index.php
Heptite
3

Jetez un œil à l'écran GNU utilisé conjointement avec Vim.

Première fenêtre, lancez l'écran gnu et vim

xterm
screen -S edit
vim

Deuxième fenêtre, connectez-vous à la session écran:

xterm
screen -x edit

Incroyablement utile sur de grands ordinateurs de bureau xinerama, plusieurs écrans virtuels ou des sessions VNC. Une seule session de Vim, avec beaucoup d'onglets, est tout ce dont vous avez besoin.

-- À M

À M
la source
1
Points pour le tutoriel rapide et bref, bien que je n'appellerais cela que légèrement utile, car je ne peux pas modifier différents tampons de la même session de cette façon.
Atilla Filiz
Fait intéressant, c'est un point où l'écran gagne sur tmux, - dans tmux attacher à la même session à partir d'un client différent signifie que vous voyez simplement les choses en miroir dans les deux instances ... Je considère une combinaison impie des deux mais pas tout à fait compris ce que je veux faire encore!
JonnyRaa
2

Cela fait un certain temps que vous n'avez pas posé votre question et beaucoup de choses se sont améliorées. Nvidia a une bien meilleure prise en charge des pilotes pour plusieurs moniteurs sous Linux.
J'ai maintenant cessé d'utiliser Gvim depuis que je suis passé à KDE: maintenant j'utilise vim-qt. Il vous permet d'ouvrir plusieurs instances, au cas où vous ne voudriez pas utiliser vim dans le terminal.

modifier: Ma configuration

jollyroger
la source
J'essaie maintenant, comment utiliser ces multiples instances? Cela ressemble à un gvim ordinaire avec un visage légèrement différent pour moi.
Atilla Filiz
Vous pouvez simplement démarrer deux instances de vim-qt afin d'avoir une fenêtre pour chacun de vos écrans et une alt-tab entre eux, ou affecter des raccourcis clavier à chaque fenêtre. Vim-qt est écrit pour qt, donc les environnements de bureau basés sur qt comme KDE peuvent mieux utiliser les fenêtres. Cela signifie que vous pouvez ouvrir plusieurs fenêtres graphiques différentes et que vos fenêtres graphiques vim peuvent être en plein écran. Ce qui n'était pas possible avec gvim régulier.
jollyroger
6
Merci d'avoir pris le temps mais ce n'est pas ce que je voulais. Je voulais accéder aux mêmes tampons à partir de deux fenêtres GUI distinctes. Et ce n'est pas possible car le partage de tampon est toujours dans la liste des tâches de vim (voir la réponse acceptée).
Atilla Filiz
1

Vous pouvez avoir autant de sessions vi (m) que vous le souhaitez en utilisant des fenêtres de terminal distinctes pour chacune.

Quant à ne pas les avoir sur l'ensemble, je suppose que vous les mettez en plein écran, puis il se développe sur les deux moniteurs car il est configuré pour étendre le bureau. Ne l'agrandissez pas et ajustez manuellement la taille du terminal ou de la fenêtre gvim.

Si j'ai raté le cap, essayez d'élaborer un peu plus.

Qu'entendez-vous par fenêtre vim?

modifier: Voici une photo de mon écran avec 4 instances vim en cours d'exécution

J'espère que Heptite l'a frappé, parce que j'étais un peu perdu avec celui-ci.

Dan M.
la source
1
C'est exactement ce que je fais maintenant, les redimensionner manuellement pour couvrir deux moniteurs, puis: vsplit mais cela a l'air moche et parfois je veux voir des tampons sur différents bureaux virtuels, ou couvrir un moniteur avec autre chose. Ce que je veux, c'est utiliser deux terminaux differnet et toujours accéder aux mêmes tampons des deux.
Atilla Filiz,
Je comprends maintenant. Heureux de voir Heptite a répondu à cela pour vous.
Dan M.