Vim et souris avec ssh de Mac à Linux

9

Je sais certainement qu'il est possible de faire fonctionner la souris dans Vim sur une session distante vers une machine Linux à partir de mon Mac, mais je n'ai pas compris comment.

Daily vim donne un conseil pour le faire fonctionner mais si j'essaie de définir 'mac-ansi', par exemple, j'obtiens une erreur disant que je ne peux spécifier que des valeurs commençant par builtin_ (riscos, beos-ansi, etc.). J'ai essayé d'utiliser ssh -X, combiné avec set mouse=aet set term=builtin_ansopar exemple, mais sans succès avec ou sans les combiner.

J'utilise Snow Leopard et j'essaie d'utiliser la souris sur une machine Debian avec vim 7.1.314. J'ai regardé la documentation mais je ne peux pas la faire fonctionner. Des conseils?

Jonatan Littke
la source
Les conseils sur ce poste quotidien de Vim sont tout à fait faux en ce qui concerne l' 'term'option. Il y a très peu de circonstances où l'on devrait changer cette option dans Vim au lieu de faire en sorte que le terminal définisse la valeur correcte pour $ TERM. Le commentaire de Spectral est juste.
jamessan

Réponses:

15

Je ne pense pas que Terminal.app prend en charge les rapports de souris xterm qui sont nécessaires pour faire fonctionner la souris. Il existe quelques options pour obtenir un terminal avec une fonctionnalité de rapport de souris.

  • iTerm est un programme de terminal alternatif qui prend en charge les rapports de souris
  • MouseTerm est un hack pour ajouter des rapports de souris à Terminal.app mais je ne l'ai pas essayé et je ne sais pas comment cela fonctionne
  • Vous pouvez également installer X11 et utiliser un vrai xterm

Une fois que vous en avez un, :set mouse=a(vous devrez peut-être aussi le faire :set term=xterm) et vous devriez être en affaires.

Geoff Reedy
la source
1
MouseTerm a résolu le problème. Ils prennent actuellement en charge les clics de souris et les événements de défilement. Je viens d'installer SIMBL + MouseTerm et d'exécuter set mouse = a dans Vim sur ma machine distante, et cela a fonctionné.
Jonatan Littke
1
+1 pour: set mouse = a in vim. Avec Putty sous Windows, aucune autre configuration n'est nécessaire. Je ne peux pas croire que j'utilise le clavier depuis si longtemps.
Cheesington
6

Pour utiliser Terminal.app avec une souris, vous devez utiliser Alt-clic au lieu de cliquer.
Par exemple, dans vim set mouse = a puis utilisez Alt-clic pour positionner le curseur.

Cela fonctionne via ssh, bien qu'il ne permette pas le redimensionnement des fenêtres (vim). Vous perdez également la possibilité de couper à partir d'autres fenêtres et de coller dans la fenêtre du terminal.

dschult
la source
1

Je n'ai pas la réponse, mais je peux partager ce que j'ai appris au cours de mes mois de recherche de la réponse. Je suis un grand utilisateur de vim et d'écran GNU sur ssh. Ironiquement, je jure par ces programmes car je peux les utiliser à distance sans souris, mais j'ai presque abandonné OS X car cela ne me permet pas facilement de les utiliser à distance avec une souris.

Quoi qu'il en soit, voici ce que j'ai découvert:

  • xterm fonctionnant sous X11.app peut être fait pour signaler les événements de la souris et fonctionner comme vous le souhaitez. Malheureusement, xterm manque de nombreuses fonctionnalités iTerm et Terminal.app. Faire quelque chose d'aussi simple que de changer la police dans xterm nécessite un peu de magie noire.
  • iTerm peut soi-disant accueillir la fonctionnalité souhaitée, mais je ne l'ai jamais fait fonctionner. iTerm a également souffert de problèmes de performances majeurs lorsque j'ai quitté le navire pour Terminal.app il y a quelques mois. Les mises à jour d'écran se sont produites lentement, et cela prendrait 25% de CPU simplement assis sans rien faire.
  • J'ai en fait essayé d'utiliser une machine virtuelle Ubuntu dépouillée fonctionnant sous VMWare comme application de terminal. Je l'ai configuré pour démarrer dans un Gnome-Terminal plein écran avec Fluxbox comme gestionnaire de fenêtres. J'ai abandonné cette solution car elle ne fonctionnait pas bien avec Spaces et les frais généraux liés à l'exécution de VMWare.

Maintenant, je ne m'éloigne jamais vraiment d'une vraie boîte Linux, j'utilise parfois vim via Terminal.app pour rester honnête - si je ne me souviens pas des touches de navigation, je pourrais aussi bien utiliser Visual Studio.


la source
0

En plus de la réponse de Geoff, voici une autre solution possible:

MacVim + NetRW pour vim .

MacVim a intégré la prise en charge de la souris, et NetRW est un module vim qui permet l'édition à distance à l'aide vim scp://host/path/to/file. Il vous suffit donc de démarrer MacVim et de vous connecter au fichier, de le modifier et de l'enregistrer à distance.

Vous pouvez également être intéressé à modifier un peu l'interface graphique, voir ma question connexe sur SO.

Jonatan Littke
la source