Comment obtenir Mac OS X Terminal.app et le défilement écran / vim pour bien jouer?

13

OSX 10.6.3 Terminal.app

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-à-dire que dans l'écran, tout ce qui dépasse le haut du cadre a disparu, ne peut pas revenir en arrière. Cela semble fonctionner correctement dans d'autres applications de terminal gnome, cygwin. Peut-être qu'il s'agit d'un shell env, config ou command?

.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 différentes valeurs, mais cela n'a aucun effet.

certains paramètres .bashrc:

set -o physical  
export TERM=xterm-color  
shopt -s checkwinsize  
Chaînes rouillées
la source

Réponses:

15

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

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

indirect
la source
Cela ne fonctionne pas pour moi :( "echo $ TERM" renvoie "xterm-256color", donc je suis sûr que c'est la bonne valeur terminale, mais aucune valeur que je fournis ne prend effet.
Tim Harper
15

Dans votre répertoire personnel, mettez dans le fichier .screenrcle texte suivant:

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

Fonctionne également pour Terminal.app.

dmw
la source
2
Je sais que cela a fonctionné dans Snow Leopard, mais ne semble pas fonctionner sous OS X Lion. Bummer :(
Tim Harper
1
C'était exactement ce que je cherchais - travailler pour moi dans OS X Lion 10.7.3 avec Terminal.app - fantastique!
dossy
Fonctionne également pour moi dans OS X Lion 10.7.5 (Remarque: il y a une légère faute de frappe dans la réponse; le fichier dans lequel vous devez stocker la commande est ~ / .screenrc, c'est-à-dire dans votre répertoire personnel, dans un fichier nommé ".screenrc" - pas "screenrc". J'ai édité la réponse maintenant pour refléter cela.)
likethesky
8

Je pense que cela devrait aussi fonctionner, encore plus universel:

termcapinfo xterm* ti@:te@

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

termcapinfo * ti@:te@
UN B
la source
C'est la meilleure réponse à mon humble avis.
Steve Bennett
3

Vieux fil je m'en rends compte, mais pour ce que ça vaut:

Si vous utilisez un iTerm2 correctement configuré sur Mac OS X Mountain Lion 10.8.2, il semble qu'il ne soit pas nécessaire de créer / modifier également un fichier .screenrc, conformément à la suggestion utile de Gareth ci-dessus.

  1. Installez iTerm2-1_0_0_20120726

  2. Lancez iTerm2> menu Profil> Ouvrir les profils> sélectionnez Par défaut> Modifier le profil> onglet Terminal> Cochez ON:

    • Enregistrez les lignes pour faire défiler la barre d'état lorsque l'application est présente
    • Défilement illimité (facultatif)
  3. Redémarrez iTerm 2 (ou démarrez un nouveau shell)

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

-dk

David Keenan
la source
C'est étonnant!!
HaxElit
@David Keenan Je suis tellement content d'avoir posté cette solution!
ivan
2

Réponse courte:

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

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

lajuette
la source
veuillez commenter le vote négatif.
lajuette
Remarque, cette méthode semble interrompre le processus en cours d'exécution. Ce qui peut ou peut ne pas être souhaité
cavalcade
1

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

Je vous recommande d'en savoir plus sur le défilement 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 fasse peur.

Avec un peu d'aide de Google , j'ai trouvé un article de blog intitulé Working with the Scrollback Buffer .

Je ne m'attendais pas vraiment à ce que le scrollback s'intègre jamais avec le tampon de Terminal.app. Si vous passez d'un écran virtuel à un autre, qu'advient-il du tampon du terminal? Si vous vous déconnectez d'une machine et que vous vous reconnectez trois heures plus tard, la mémoire tampon de votre terminal est désynchronisée depuis longtemps.

screenest ma petite fenêtre sur un autre serveur. J'aime que le tampon de défilement de cet écran persiste avec la session afin que j'aie accès à celui-ci où que je me connecte. J'aime que chaque écran de ma session ait son propre tampon de défilement.

Je pense que vous avez trouvé que cela fonctionnait dans gnome et cygwin car il screenutilise la fonctionnalité «écran alternatif» de xterm. Il y a plus de discussion à ce sujet dans la première question sur cette page de FAQ d'écran .

Doug Harris
la source
merci, super info. oui, le mode copie ressemble beaucoup à vim, j'aime bien. :)
rustychains
1

J'utilise iTerm 2 . Il y a une option sous profils> terminal qui dit: "Enregistrer les lignes pour faire défiler lorsqu'une barre d'état de l'application est présente". Cela et mettre:

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

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

Runar
la source
0

Si vous allez dans le menu Terminal et sélectionnez Préférences ... puis cliquez sur l'onglet de la fenêtre en bas, il y a des options pour le défilement, le bouton radio pour Illimité est-il sélectionné?

marque
la source
illimité est sélectionné
rustychains
0

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

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

kanatzidis
la source
0

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 dans "Déclarer le terminal comme" sous l'en-tête "Terminfo" de l'onglet "Avancé" de mes paramètres de profil a résolu le problème.

wachr
la source