8
votes

Focus suivez la souris dans Vim

Je suis conscient que l'option Mousefocus n'est censée fonctionner que dans GVIM. Mais je me demandais, s'il est possible d'avoir la console Vim Switch à différentes fenêtres en réponse aux clics de la souris, il ne serait-il pas possible d'ajouter facilement le mouvement de la souris après la suite?

Je suis un utilisateur Xmonad, j'aime la mise au point suivant la fonctionnalité du pointeur, je fais beaucoup de PDF visualisant et navigue en écrivant dans Vim, et je serais tellement plus heureux si je n'avais pas à garder mentalement Passer en arrière entre deux types différents de changement de mise au point.

Si cela n'est pas complètement impossible, je suppose que l'ouverture de nouvelles fenêtres Vim (comme avec: Split) dans de nouvelles instances du terminal n'est pas plus facile à faire?


1 commentaires

C'était ma raison de migrer vers néovim où les vitres divisées peuvent être commutées avec la souris et où la souris défilant dans les vitres fonctionne comme prévu


3 Réponses :


7
votes
set mouse=a
should do the trick but it will probably depend on your terminal emulator. See :help 'mouse'.

1 commentaires

Cela nécessite toujours de cliquer sur la souris pour sélectionner une fenêtre, la question suivante a suivi la sélection de la fenêtre sous le pointeur sans avoir à cliquer sur la fenêtre.



10
votes

Ce ne serait pas du tout simple d'ajouter ceci. Utilisation de la souris dans les travaux terminaux par VIM Envoyer des codes de contrôle au terminal demandant que les actions de la souris soient envoyées dans le flux d'entrée. Terminaux Seul signaler uniquement des clics non modifiés dans la position du pointeur. Vim n'a donc aucun moyen de savoir où se trouve la souris.

Avec des changements majeurs, il serait probablement possible d'obtenir un VIM avec x Support d'obtenir une activité du pointeur directement à partir du serveur X, mais cela serait probablement signalé par pixel plutôt que par caractère, de sorte que d'autres travaux devraient être effectués avant de pouvoir faire Déterminez quelle fenêtre Vim est actuellement sous le pointeur.


3 commentaires

Merci pour la réponse. Je pense avoir une idée de savoir comment travailler autour de cela de manière laid. Je posterai ici si je monte avec quelque chose d'utilisable.


@Caneren Comment le défilement est-il pertinent? Pour moi, cela ne fonctionne pas de manière pertinente pour cette question; L'utilisation de la roue de défilement fait défiler la fenêtre Vim qui a été sélectionnée non celle que le pointeur est terminé.


@qqx: Sur ma machine (Linux, URXVT-UNICODE), il fait défiler la fenêtre Vim (scissions verticales ou horizontales) sous le pointeur de la souris, mais le curseur reste toujours dans la fenêtre d'origine.



0
votes

Ceci fonctionne pour Windows 7 / Cygwin 32bit MINTY / VIM 7.3: (Je n'utilise pas gvim!)

ayant installé ceci: http://ehiti.de/katmouse/ , je peux faire défiler la fenêtre sous Mon curseur sans avoir à avoir cliqué pour sélectionner une fenêtre, cliquez également sur la sélection des œuvres de Vim-Windows. Il ne tire pas la fenêtre Vim au premier plan, si une autre fenêtre le chevauche, si c'est ce que vous désirez. Il est toujours possible de faire défiler sans click-la sélectionner d'abord.

Donc:
Vérifiez s'il existe un logiciel Paket pour votre distribution, cela implémente votre comportement de la souris souhaité sur le niveau du système d'exploitation. Lorsque cela fonctionne pour mon Vim auto-compilé en Cygwin, il pourrait très bien fonctionner avec la console Vim sur Linux.

Ce message ici sert de preuves, qu'il est possible du tout, c'est la raison pour laquelle cela n'a pas été fait de commentaire. Quand je suis à nouveau sur Linux, j'équelle plus loin et mettra à jour cet article, mais cela pourrait prendre un certain temps.

sur Set de souris = A : L'aide de VIM vous indique un terminal capable de manipuler des entrées de souris, des informations supplémentaires peuvent être trouvées ici . : Aide Ttymouse peut aussi être utile, c'est-à-dire si vous avez une console compatible Xterm, mais : terme d'aide est défini sur autre chose.


mise à jour : (Fedora 19 fraîchement installée avec des packages, pas de choses auto-compilées.)

Fedora 19 + SE Mouse = A = défilement dans la fenêtre Vim de la console unique avec plusieurs tampons ouverts à côté de l'autre de l'autre ne fonctionne pas indépendamment. Window Manager utilisé est LXDE.


2 commentaires

Vous dites que cela fonctionne pour Vim Windows (où plusieurs fichiers sont ouverts dans une fenêtre unique au niveau du système d'exploitation) ou juste des fenêtres au niveau du système d'exploitation? Je serais assez surpris si un programme arbitraire cadrerait que de travailler pour Vim Windows.


@qqx Le comportement que j'ai décrit fonctionne lorsque lorsqu'une fenêtre d'émulateur à borne unique (MintTy.exe est utilisée) est ouverte, la console Vim est en cours d'exécution. La console Vim elle-même présente plusieurs fenêtres ouvertes côte à côte. Tant que Katmouse est en cours d'exécution, je peux faire défiler chaque fenêtre Vim si le curseur de la souris se trouve dans les limites de la fenêtre Vim en question. Quelque chose comme l'écran ou TMUX n'est pas utilisé. SE souris = A est nécessaire.