Vim sur plusieurs moniteurs

9

Quelqu'un a-t-il une solution élégante pour que MacVim ou gvim s'étendent sur plusieurs moniteurs (résolution potentiellement différente)? Avoir 2 sessions ne fonctionne pas bien en raison de tampons séparés et de fichiers d'échange.

On pourrait penser que 2 fenêtres GUI pourraient partager les mêmes tampons, mais je ne trouve rien qui fonctionne.

Patm
la source
1
J'aimerais également connaître la réponse. J'ai trouvé ce vimdoc.sourceforge.net/htmldoc/remote.html qui semble être la bonne direction. Mais je ne l'ai pas encore essayé.
Amjith

Réponses:

1

Développez la gvimfenêtre pour couvrir les deux écrans et utilisez CTRL-W vpour diviser la fenêtre d'édition verticalement.

Voir :help CTRL-Wpour plus de commandes de fenêtre.

MikeyB
la source
1
Je suis bien conscient du fractionnement des fenêtres. Malheureusement, cela ne fonctionne pas bien avec différentes résolutions d'écran. Il semble qu'il n'y ait vraiment pas de bonne façon de procéder.
Patm
1

J'utilise également souvent plusieurs moniteurs, j'ai donc fait une solution de contournement simple à utiliser jusqu'à ce que vim implémente cette fonctionnalité. En utilisant un script lua nommé gitv, je peux ouvrir un fichier sur plusieurs instances de GVIM en même temps. Fondamentalement, lorsqu'il existe deux instances de GVIM nommées GVIM1 et GVIM2, ce que j'ai fait était simplement de m'assurer qu'un seul fichier est modifiable à la fois, et que tous les autres sont des visualiseurs. (Tout se fait automatiquement sans invite.)

Flux de travail: Actuellement, gitv est conçu pour les référentiels git, il ne peut donc être utilisé que pour ces fichiers dans un référentiel git. Vous pouvez facilement changer ce comportement par défaut en modifiant la fonction lsFiles ().

Pour ouvrir d'abord a.txt sur GVIM1, utilisez

$ gitv gvimr GVIM1 a.txt

Cela ouvrira une fenêtre gvim s'il n'y en a pas. Ensuite, pour ouvrir le même a.txt sur une autre instance GVIM2, utilisez

$ gitv gvimr GVIM2 a.txt (ou vous pouvez créer un alias comme $ gvim2 a.txt)

Ensuite, gitv fait en interne les opérations suivantes:

  1. trouver toutes les instances de gvim qui ont "a.txt" ouvert. (Dans ce cas, GVIM1)
  2. définir tous ces tampons a.txt "en lecture seule", "nomodifiable" et "lecture automatique".
  3. Le tampon qui a été modifié sera écrit sur le disque avant d'être défini en "lecture seule".)
  4. supprimez le fichier d'échange.
  5. rouvrez a.txt sur GVIM2. (gvim peut ouvrir ce fichier sans problème car il n'y a pas de fichier d'échange.)

Si vous voulez éditer a.txt sur le moniteur 1 au lieu du moniteur 2, faites ceci pour changer le tampon actif: $ gitv gvimr GVIM1 a.txt (ou gvim1 a.txt) Cela peut être fait plus facilement à l'intérieur de gvim1 en utilisant ctrl + g + a.txt

(Cela placera automatiquement le même tampon ouvert dans d'autres instances de gvim "en lecture seule" pour éviter la corruption des données.)

gitv peut être téléchargé ici: http://code.google.com/p/gitv/ Il a été testé uniquement sur linux gvim, mais il pourrait facilement être porté sur MacVIM.

tbear
la source