Comment désactiver le «défilement de l'historique» dans iTerm2

291

J'ai installé le nouveau iTerm 2. Il m'a demandé dans une barre jaune en haut si je voulais activer une fonction de souris. Malheureusement, je ne me souviens plus de la phrase exacte.

Par accident, j'ai approuvé. Maintenant, lorsque j'utilise la molette de défilement de la souris dans iTerm, elle ne fait plus défiler vers le haut, mais déclenche à la place l'historique des commandes. Comme si j'appuyais sur le curseur haut.

Je n'ai pas pu trouver les bons paramètres pour désactiver cela à nouveau. Est-ce que quelqu'un sait où je peux basculer cette option?

Merci pour votre aide!

Gambo
la source
4
Je suppose que vous utilisez iTerm2.9, et le message que vous avez vu est "Voulez-vous que la molette de défilement déplace le curseur dans des programmes interactifs comme celui-ci?". Cependant, je ne trouve pas d'interface pour le basculer, avez-vous encore le problème?
sel-fish
1
Oui, mais uniquement lorsque je suis connecté à un serveur via ssh. Je ne sais pas comment cela pourrait être connecté.
Gambo
"uniquement lorsque je suis connecté à un serveur via ssh", vous voulez dire que lorsque vous utilisez iTerm2 pour des opérations locales, cela ne se produira pas? Utilisez-vous un «profil» différent lorsque vous êtes connecté à un serveur via ssh?
sel-fish
Un caractère de contrôle de terminal doit être envoyé pour activer et désactiver l'écran alternatif. Je pense qu'il vaut mieux à long terme (non spécifique à iTerm2 ou vim ou moins) d'apprendre ce qu'est ce personnage de contrôle. Ce pourrait être ESC [ ? 1 0 4 9 lou ESC [ ? 1 0 4 7 lou ESC [ ? 47 l( gnu.org/software/screen/manual/html_node/Control-Sequences.html )
dlamblin
2
cela a juste commencé à se produire au hasard pour moi .. frustrant lorsque vous essayez de parcourir les journaux
SgtPooki

Réponses:

494

Quelques terminaux, y compris iTerm2, ont une fonction où ils changent le comportement de la souris à molette lorsqu'un programme plein écran tel que vi, ou screenou tmuxest en cours d'exécution. Cela se produit lorsque ces programmes utilisent l' écran alternatif pour fournir une fonction utile. Normalement, lorsque vous utilisez l'écran alternatif dans iTerm2, la souris à molette agit comme la barre de défilement, faisant défiler l'écran entier vers le haut / bas. Mais lorsque cette fonctionnalité est activée, iTerm2 envoie des touches de curseur haut / bas, ce qui modifie l'historique de vos commandes.

Comme suggéré dans un autre commentaire, sélectionnez le menu Préférences :

entrez la description de l'image ici

et en cela, sélectionnez l' onglet Avancé . Faites défiler jusqu'à la section Souris ,

entrez la description de l'image ici

et basculer l'entrée pour

La molette de défilement envoie les touches fléchées en mode d'écran alternatif

de Oui à Non . Vous devrez redémarrer iTerm2 pour que la modification prenne effet. (Avec iTerm2 v3.1.5, les modifications prennent effet sans redémarrage.)

Thomas Dickey
la source
2
Je l'ai testé avant d'écrire le commentaire - basculer l'option n'était pas suffisant.
Thomas Dickey
Peut dépendre de la version. Dans 3.0.2, le basculement est définitivement suffisant. En fait, si vous êtes en mode d'écran alternatif et que ce paramètre est désactivé et que vous essayez (et échouez) de faire défiler avec la souris et appuyez ensuite sur la touche fléchée haut ou bas, vous serez invité à activer cette fonction à droite dans le fenêtre de terminal.
George
3
3.0.12 n'a pas besoin d'être redémarré pour que cela prenne effet.
dhempler
21
//, j'aime cette fonctionnalité et je l'utilise dans Vim. Comment quitter le mode d'écran alternatif dans une fenêtre de terminal donnée? MISE À JOUR: Dans le terminal qui est en mode d'écran alternatif, ouvrez un programme de terminal qui active le mode d'écran alternatif. Quittez ce programme proprement. Cela met fin temporairement au problème. Je pense que cela indique que le problème a été causé par la fermeture d'un programme qui utilisait la fonction d'écran alternatif d'une manière inhabituelle.
Nathan Basanese
7
Monsieur, vous m'avez sauvé de la pure folie.
BK
60

Si vous êtes piégé dans le mode historique de défilement, vous pouvez vous échapper en exécutant vi et quitter directement.Vous pouvez également choisir un autre programme qui utilise l'écran alternatif et quitter directement.

Faire défiler l'historique avec la molette de la souris ne devrait en théorie jamais se produire. Cela se produit dans la pratique car parfois le mode d'écran alternatif n'est pas correctement rétabli. La réponse acceptée résout le problème en désactivant une fonctionnalité utile, à savoir le défilement dans vi, less, ... avec la molette de la souris ou le trackpad. Vous pouvez conserver l'option dans les préférences avancées:

La molette de défilement envoie les touches fléchées en mode d'écran alternatif

réglé sur oui. Vous serez parfois piégé dans le mode d'historique de défilement. Mais si vous savez vous échapper, ce n'est pas un problème.

Ortomala Lokni
la source
2
Merci pour le conseil! Cela m'a aidé :)
jj172
1
Merci mec! Mais entrer et sortir de vi n'a pas aidé dans mon cas pour une raison quelconque, mais cela a fonctionné après être entré dans une page de manuel et l'avoir quitté en appuyant sur q
Frax
1
C'était tellement utile. Le défilement consistait soudainement à ajouter [[A^et [[B^à la ligne de commande au lieu de faire défiler la fenêtre. Je savais que ce n'était pas un comportement normal. Avant cela, j'avais laissé l'ordinateur dans nanoun shell SSH qui s'est déconnecté lorsque j'ai fermé mon ordinateur portable. Cette sortie brutale était évidemment le coupable. L'ouverture d'un nouvel onglet dans iTerm2 a résolu ce problème.
Colin Marshall
Malheureusement, lors de l'utilisation, screenvous ne pouvez pas utiliser cette astuce pour quitter le mode d'écran alternatif. Donc, si vous en utilisez screenbeaucoup (comme moi), la désactivation complète de la fonctionnalité est un épargnant de vie.
mvreijn
Je préfère cette réponse, car il est très utile de naviguer dans les applications en plein écran avec le trackpad, donc désactiver la fonctionnalité dans les préférences n'était pas une bonne option pour moi :) Thx pour partager cette astuce :)
Patrick Ferreira
42

Vous avez probablement juste besoin de sortir de la console alternative.

Essayer: tput rmcup

otrejni
la source
1
Grande réponse A + 💯
dps
Meilleure réponse - cela vous permet de faire défiler l'historique tout en étant capable de faire défiler en vim. Merci!
JonLuca
10

Préférences: avancées: souris: la molette de défilement envoie les touches fléchées en mode alternatif

Idiot
la source
2
J'ai ce même problème exact décrit, mais dans la plus récente souris iTerm n'est pas sous les préférences: avancées. Déclencheurs, sélection intelligente et histoire sémantique. Quelqu'un connaît-il une autre façon de résoudre ce problème?
mikeLspohn
9

Avec iTerm2, vous pouvez également maintenir Option tout en utilisant la molette de défilement pour forcer le défilement de la fenêtre, au cas où vous souhaiteriez que la molette continue de fonctionner dans vim.

Kyle Smith
la source
cela fonctionne, mais comment revenir aux paramètres par défaut, quand je n'ai pas eu à maintenir la touche option
meso_2600
2

Le comportement que vous voyez est le comportement attendu (et correct) dans l'écran alternatif. Le seul problème que vous avez est que vous êtes tombé dans bash, ou autre chose, sur l'écran alternatif, peut-être en perdant une connexion ou à partir d'un vim tué ou moins. EG vous étiez dedans et vous êtes less +F /var/log/somethingdéconnecté.

Vous voyez que quelqu'un a déjà écrit que le tput rmcup commande quittera l'écran principal.

Je suis également allé de l'avant et j'ai recherché certains caractères de contrôle de terminal. Il peut s'agir de: ESC [ ? 1 0 4 9 lou ESC [ ? 1 0 4 7 louESC [ ? 47 l (gnu.org/software/screen/manual/html_node/Control-Sequences.html) avec une préférence pour le premier.

Je réussis généralement dans iTerm2 avec en echo -e '\e[?1049l'fait je ne trouve rmcuppas plus facile à retenir, restaurer la mémoire de la console?.

dlamblin
la source
1

J'avais ce même problème et aucune des solutions que j'ai lues et essayées n'a fonctionné. Ce qui a résolu mon problème était de désactiver Secure Keyboard Entry et maintenant lorsque j'utilise la souris pour la faire défiler en ssh et en mode terminal sur macOS 10.13, cela fonctionne comme je m'y attendais aussi!

Stan
la source