J'essaie de savoir ce qu'est une fonctionnalité bash (ou vim). Voici le scénario. Je suis dans un terminal bash, puis éditez quelque chose avec vim, puis revenez à bash. Dans certains terminaux, l'écran de session vim disparaît pour montrer l'activité précédente du shell bash (c'est ce que je veux?).
Dans d'autres, le tampon d'écran de la session vim reste (cachant l'ancienne activité du shell bash). Je devrai soit vider l'écran, soit attendre que mon activité bash pousse ce tampon de session vim hors de l'écran.
Comment puis-je contrôler ce comportement pour remplacer le tampon de session vim par l'activité bash précédente?
Merci Tim
Réponses:
Vim envoie
t_ti
ett_ks
au terminal lorsqu'une session est lancéet_te
ett_ke
lorsqu'elle se termine. Les séquencest_ti
ett_te
entraînent le terminal à basculer vers son écran alternatif.Dans votre
~/.vimrc
fichier, vous pouvezvim
laisser le document à l'écran à sa sortie en incluant cette ligne:si vous avez une ligne similaire à celle-ci, sa suppression devrait faire apparaître le contenu du terminal précédent lorsque vous quittez
vim
.la source
Une cause de ce problème peut être en utilisant le programme
screen
. Je trouve que lorsque je suis enscreen
session, vim ne peut pas retourner l'état du terminal.Je ne sais pas si c'est spécifique à l'écran ou au combo écran / vim dans Ubuntu 15.10. Même cause que celle décrite ci-dessus, j'imagine qu'elle
screen
a une terminaison différente.la source
altscreen on
dans le fichier ~ / .screenrc résout le problème d'écran.Ajoutez simplement une ligne à votre
~/.bash_profile
fichier pour exporter TERM en tant que xterm à chaque connexion. Procédez comme suit;La prochaine fois que vous vous connecterez, votre problème sera résolu, et si vous ne voulez pas vous reconnecter, vous pouvez faire l'une des ...
la source
export $TERM
?export
exporte le nom (par exempleTERM
dans ce cas) en tant que variable d'environnement plutôt que variable locale. Si vous l'utilisiezexport $TERM
dans cet exemple, la$TERM
var se résoudrait etxterm
vous définiriez la var env$xterm
, qui n'est probablement pas définie. Bonne question cependant, ça me semble toujours mal aussi.Tim. Les deux réponses ci-dessus sont correctes. Vim bascule le terminal sur un "écran alternatif" si la capacité de le faire est définie dans l'entrée termcap pour $ TERM.
Vous dites "dans certains terminaux (... ça marche bien ...)" et "dans d'autres (... ça marche mal ...)"
Utilisez-vous exactement le même émulateur de terminal pour tous ces terminaux?
Par exemple, sur ma boîte Linux domestique, j'ai gnome-terminal, xterm, Konsole, yakuake, et probablement quelques autres que j'ai oubliés, ainsi que les "terminaux virtuels" associés au ctrl-alt-F1 ... ctrl-alt-F6 ou plus. La plupart d'entre eux peuvent fonctionner avec l'entrée "standard" de capuchon pour "xterm" - à l'exception des terminaux virtuels qui ont une définition de terminal nommée "linux".
Vérifiez l'émulateur de terminal lui-même et la valeur de $ TERM sur les terminaux qui fonctionnent et sur ceux qui ne fonctionnent pas, pour voir ce qui est différent. De plus, si vous êtes parfois connecté en tant qu'utilisateur différent, cela pourrait être au cœur du problème - puisque chaque utilisateur a son propre .bashrc, divers paramètres peuvent différer d'un utilisateur à l'autre.
J'espère que cela pourra aider!
-pbr
la source
Cela a à voir avec votre terminal et les paramètres de votre machine traitant des informations sur le terminal. Une solution portable consiste à utiliser GNU Screen. Ouvrez une fenêtre pour Vim et une autre pour Bash, séparant ainsi les deux sessions. Si vous utilisez un terminal graphique tel que xterm sur X11, Gnome Terminal sur Gnome ou Terminal.app sur OS X, vous pouvez ouvrir une nouvelle fenêtre ou un nouvel onglet pour obtenir le même effet.
la source