Défilement à l'intérieur de Vim dans le terminal Mac

89

J'ai cherché sur Google pour essayer de savoir s'il était possible d'utiliser la molette de ma souris pour faire défiler à l'intérieur de Vim dans le terminal Mac, sans chance. Il semble que seuls X11 ou iTerm le prennent en charge.

Avant d'abandonner, j'ai pensé essayer les génies ici pour voir si quelqu'un connaît un moyen de le faire. Alors, est-ce que quelqu'un sait si je peux mettre en place cela?

Ou devrais-je sérieusement envisager d'utiliser une autre application de terminal?

hora
la source
Est-ce quelque chose que vous pouvez faire sur d'autres plates-formes ou éditeurs de terminaux? S'il y avait une implémentation de VI basée sur X, je suppose qu'elle pourrait prendre en charge cela, mais ne préféreriez-vous pas prendre en charge la souris de défilement pour contrôler le tampon de défilement?
benc
Dans le terminal d'Ubuntu, vous pouvez faire défiler, c'est pourquoi je demandais, je voulais voir si je pouvais avoir la même fonctionnalité sur mon Mac.
hora
1
@hora - vous pouvez, utilisez simplement iterm. Vous obtenez également 256 couleurs, un copier-coller sensible, etc.
robince

Réponses:

68

http://bitheap.org/mouseterm/

Utilisez MouseTerm (et assurez-vous d'installer d'abord SIMBL!) Et le défilement fonctionnera comme un charme, même à distance, en utilisant Mac Terminal.

Vous devez quitter complètement l'application Terminal (Commande + Q), puis la relancer après l'installation de MouseTerm.

Jonatan Littke
la source
2
Wow, c'est exactement ce que je cherchais. En attendant, je me suis habitué à NE PAS utiliser ma souris, mais c'est toujours utile.
hora
8
Pour les noix de vim, ajouter un set mouse=adans votre .vimrc fonctionne comme un charme avec MouseTerm
Panagiotis Moustafellos
5
Si vous recherchez SIMBL et que vous essayez de le faire fonctionner sur Lion, essayez EasySIMBL: github.com/norio-nomura/EasySIMBL/downloads
Zachary Murray
2
peut confirmer qu'EasySIMBL + MouseTerm fonctionne également sur Mavericks
jcr
2
Les dernières versions d'EasySIMBL sont maintenant ici (actuellement 1.6): github.com/norio-nomura/EasySIMBL/releases
Nathaniel Heinrichs
99

Et si vous utilisez iTerm, ajoutez ceci à votre vimrc

:set mouse=a
Shane Reustle
la source
6
Fonctionne également pour l'application de terminal OSX par défaut.
Ian
22

C'est une vieille question, mais un succès sur Google, donc je me sens obligé de fournir une réponse à jour.

Exécution d'OSX El Capitan 10.11, le défilement de la souris vim et du trackpad fonctionnait (TM) pour moi dans Terminal.app par défaut. Cependant, occasionnellement, l'entrée souris / trackpad a cessé de manipuler la mémoire tampon vim et a commencé à faire défiler la mémoire tampon du terminal. La réponse était Command+Rou Affichage du menu -> Autoriser les rapports de souris. L'activation de cette option permettait aux opérations de défilement de la souris / du trackpad de déplacer le curseur dans vim.

mmacvicar
la source
Hé, j'ai réalisé que j'avais mal essayé d'appuyer une fois sur Commande + R au lieu de Ctrl + R pour obtenir des commandes récentes! C'est probablement ce qui m'a attiré. Merci!
Teddy
6
  • Menu Termanal> Affichage> Autoriser les rapports de souris
  • Menu du terminal> Préférences> Clavier> Faire défiler l'écran alternatif
Afagh
la source
4

Vous pouvez lire cet article , mais je suis à peu près sûr que le terminal par défaut de Mac OS X dispose d'une barre de défilement intégrée, les commandes de la molette de la souris y vont automatiquement. Vous pouvez certainement utiliser gVim comme suggéré dans la réponse précédente. Je trouve que je ne veux généralement pas utiliser la souris dans Vim car elle enlève mes mains du clavier.

J'avais juste l'habitude 50jde descendre et 50kde monter. Pas exactement de défilement, mais cela fonctionne plutôt bien.

Topher Fangio
la source
Merci, ce n'est pas exactement le défilement mais je pense que c'est mieux puisque mes mains sont toujours sur le clavier.
hora
@hora - Oui, le défilement serait certainement bien, mais malheureusement, je ne pense pas que ce soit faisable.
Topher Fangio
13
Ou utilisez CTRL + f et CTRL + b pour avancer et reculer d'un écran à la fois. Ou CTRL + d et CTRL + u pour monter et descendre d'un demi-écran.
Dan Dyer
Il ne s'agit pas seulement de faire défiler - vous avez également la possibilité de marquer des sélections visuelles avec la souris, de déplacer les limites de la fenêtre, etc. Cela rend fondamentalement un programme graphique redondant et est idéal lorsque vous travaillez sur une machine distante.
robince
@thrope - Très vrai, j'utilise ça assez souvent en fait. vpour le mode visuel, puis sélectionnez le texte que je veux. Cependant, je veux généralement une ligne entière ou un ensemble de lignes, donc, pour éviter les problèmes de collage de nouvelles lignes, je compte généralement les lignes et je clique ddpour les supprimer. Un peu plus lentement parfois, mais c'est ce à quoi je me suis habitué.
Topher Fangio
2

Assurez-vous que le terminal n'est xtermpas ansiconnecté Terminal Menu > Preferences > Profiles > Advanced. J'ai accidentellement interrompu le défilement en changeant le type de terme dans un effort naïf pour que la coloration fonctionne sur ssh.

dayne
la source
1

Utilisez gVim, qui vous offre un environnement d'édition de texte dans une fenêtre que vous pouvez faire défiler. Le terminal n'est pas impliqué lors de l'utilisation de gVim.

Greg Hewgill
la source
2
Pas vraiment pertinent - il pourrait accéder à vim sur une autre machine (via ssh) - Dans tous les cas, sur un mac, macvim est la version graphique
robince
1

J'utilise xterm dans X11 (XQuartz 2.3.4) et vim fonctionne très bien avec la souris et supporte également 256 couleurs.

Voici les ~ / .Xresources que j'utilise pour rendre mon xterm plus agréable dans X11:

XTerm*faceName: Lucida Sans Typewriter Regular
XTerm*faceSize: 9
XTerm*utf8: 1

xterm*saveLines: 1000
xterm*jumpScroll: true
!xterm*awaitInput: true
!xterm*multiScroll: true

XTerm*scrollBar: false
xterm*scrollbar*thickness: 16
xterm*rightScrollBar: true

XTerm*foreground: white
XTerm*background: grey10
!XTerm*background: black
XTerm*cursorColor: yellow

xterm*visualBell: false

xterm*loginShell: true

Petits conseils, pour supprimer le son de la cloche dans xterm de X11, tapez cette commande:

xset b 0
XPac27
la source
J'ai essayé xterm, pas un grand fan même si je ne sais pas pourquoi, il y a quelque chose à ce sujet qui me décourage. Peut-être que je vais essayer de nouveau.
hora
La seule chose qui change est le copier-coller. Coller effectué par un clic du milieu de la souris (ou alt + clic) et la copie se fait simplement en sélectionnant du texte. Bien sûr, dans vim, vous devrez désactiver la souris pour pouvoir copier quelque chose en dehors de X11 ou coller quelque chose de l'extérieur de X11 ou de vim tout en remplaçant le comportement de la souris de X11.
XPac27
1

Je recommanderais d'utiliser iTerm - il a tellement d'avantages par rapport au terminal, par exemple, le support de la souris, 256 couleurs, copier et coller judicieux (copie automatique, sélection de mot / URL avec double clic, collage de clic du milieu) ...

robince
la source
Y a-t-il des schémas de couleurs intégrés dans iTerm? Comment puis-je changer les couleurs, je n'arrive pas à le comprendre ... La boîte de dialogue "Afficher les informations de session" ne semble pas me permettre de sauvegarder différents profils.
hora
Oui, la configuration de la configuration est un peu drôle ... Allez dans Signets -> Gérer les profils -> Afficher les profils et vous pouvez configurer les couleurs. Ensuite, vous allez dans Signets -> Gérer les signets et configurer par défaut ou celui que vous souhaitez utiliser le profil d'affichage souhaité.
robince
Je ne peux même pas Option + Flèche gauche pour revenir en arrière un mot à la fois dans iTerm. Tu te moques de moi en ce moment?
IIllIIll
-1

Lorsque vous utilisez iTerm, créez un fichier .vimrc (s'il n'y est pas déjà) dans votre dossier personnel et ajoutez la ligne:

:set mouse=a

Faire défiler vers le bas dans vim pour afficher un fichier fonctionne après cela.

Shashank
la source
Cette réponse est une copie directe d'une réponse publiée plus d'un an auparavant.
moopet