Comment obtenir Mac OS X Terminal.app et screen / vim scrolling to play nice?

OSX 10.6.3 Terminal.app

Je suis un utilisateur d'écran assez dédié. Le tampon de ligne Terminal.app et / ou le défilement ne semblent pas fonctionner pour moi. C'est dans l'écran que tout ce qui dépasse la partie supérieure du cadre s'est éteint, il est impossible de faire défiler jusqu'à. Cela semble fonctionner correctement dans d'autres applications de terminal gnome, cygwin. Peut-être s'agit-il d'une enveloppe env, config ou commande?

.screenrc:

startup_message off autodetach on shell -$SHELL vbell off defutf8 on caption always caption string "%{= wk}%w" 

J'ai essayé d'utiliser defscrollback ici avec des valeurs différentes, mais n'a pas d'effet.

Certains paramètres .bashrc:

 set -o physical export TERM=xterm-color shopt -s checkwinsize 

Dans Lion, le type de terminal par défaut est différent, donc vous devriez utiliser cette ligne dans votre .screenrc place:

termcapinfo xterm-256color|xterm-color|xterm|xterms|xs|rxvt ti@:te@

Dans votre répertoire personnel, placez le fichier .screenrc le texte suivant:

 # Make xterm scrolling work properly with screen. termcapinfo xterm-color|xterm|xterms|xs|rxvt ti@:te@ 

Fonctionne aussi pour Terminal.app.

Je pense qu'il devrait aussi fonctionner, même plus universel:

 termcapinfo xterm* ti@:te@ 

Ce serait évan plus universel. C'est légal:

 termcapinfo * ti@:te@ 

Ancien fil que je réalise, mais pour ce qu'il vaut:

Si vous utilisez un iTerm2 correctement configuré sur Mac OS X Mountain Lion 10.8.2, il apparaît qu'il n'est pas nécessaire de créer / modifier un fichier .screenrc, selon la suggestion utile de Gareth ci-dessus.

  1. Installer iTerm2-1_0_0_20120726

  2. Lancez iTerm2> Menu Profil> Ouvrir profils> sélectionnez Par défaut> Modifier profil> onglet Terminal> Marquer ON:

    • Enregistrez les lignes pour faire défiler lorsque la barre d'état de l'application est présente
    • Répl. Illimité (optionnel)
  3. Redémarrez iTerm 2 (ou lancez le nouveau shell)

  4. Testez-le: Personnellement, j'ai SSH'd à Ubuntu 12.04.1 LTS sur AWS EC2> commencé byobu (déjà configuré pour utiliser l'écran, plutôt que le tmux par défaut)> Scrollback fonctionne bien maintenant (plus, iTerm's mo bettah than Terminal de toute façon …)

-dk

Réponse courte:

Tapez crtl-a + [ et utilisez vos touches de défilement / flèche ou pgup / pgdwn . Pour quitter le "mode défilement" (pas le nom réel), appuyez sur Ech

Réponse longue: cet article sur le tampon scrollback de l'écran.

Je ne sais pas s'il est possible d'obtenir le tampon de défilement de Terminal pour collecter et travailler avec le scrollback de l'écran gnu.

Je vous recommande de lire plus sur le scrollback dans l'écran lui-même. Vous devrez apprendre quelques nouvelles combinaisons de touches – puisque vous utilisez déjà l'écran, je doute que cela vous effraie.

Avec un peu d'aide de Google , j'ai trouvé une publication de blog appelée Travailler avec le tampon Scrollback .

Je ne m'attendais pas vraiment à ce que le scrollback soit intégré au tampon Terminal.app. Si vous passez d'un écran virtuel à un autre, qu'est-ce qui arrive à la mémoire tampon de Terminal? Si vous vous déconnectez d'une machine et que vous vous reconnectez trois heures plus tard, votre mémoire tampon terminée est désynchronisée.

screen est ma petite fenêtre dans un autre serveur. J'aime que le tampon scrollback de l'écran persiste avec la session afin d'avoir accès à elle dès que je me connecte. J'aime que chaque écran de ma session possède son propre tampon scrollback.

Je pense que vous avez trouvé cela fonctionnant dans gnome et cygwin parce que l' screen utilise la fonctionnalité "écran alternatif" de xterm. Il y a plus de discussion à ce sujet dans la première question sur cette page faq de l'écran .

Si vous allez dans le menu Terminal et sélectionnez Préférences … puis cliquez sur l'onglet Fenêtre en bas, il existe des options pour Scrollback, est-ce que le bouton radio de Unlimited est sélectionné?

J'utilise iTerm 2 . Il existe une option sous les profils> terminal qui indique: "Enregistrer les lignes en mode défilement lorsqu'une barre d'état de l'application est présente". C'est et mettant:

 defutf8 on termcapinfo xterm-color|xterm|xterms|xs|rxvt ti@:te@ 

Dans screenrc a fait l'affaire pour moi. Défilement!

Je me rends compte que c'est un vieux fil et a été correctement répondu, mais ma réputation n'est pas assez élevée pour simplement commenter la réponse appropriée. Dans la ligne de cette réponse , vous pouvez simplement coller la variable d'environnement dans le fichier rc:

termcapinfo $TERM ti@:te@ fait pour moi. C'est comme la réponse référencée, mais pas de caractères génériques.

Dans mon cas, le problème avec Mac Terminal.app était que mon profil de terminal par défaut ne déclarait pas le terminal comme xterm-256color . La modification de la valeur à "Declare terminal as" sous le titre "Terminfo" de l'onglet "Avancé" de mes paramètres de profil a corrigé le problème.