Linux 在tmux中卡在覆盖模式下

Linux 在tmux中卡在覆盖模式下,linux,emacs,terminal,tmux,Linux,Emacs,Terminal,Tmux,场景:我打开一个新的tmux会话,然后运行emacs.tmux.conf .tmux.conf的第二行是:set option-g前缀C-a。我输入'asd',第二行现在显示:asdset option-g前缀C-a。一切都好 我使用ssh连接到另一台服务器,执行一些操作,然后关闭连接。现在我重新运行emacs.tmux.conf,并键入'asd'。第二行现在读取asd选项-g前缀C-a,但是如果我保存并再次运行emacs.tmux.conf,我将看到asdset选项-g前缀C-a 此问题会影响

场景:我打开一个新的tmux会话,然后运行emacs.tmux.conf

.tmux.conf的第二行是:set option-g前缀C-a。我输入'asd',第二行现在显示:asdset option-g前缀C-a。一切都好

我使用ssh连接到另一台服务器,执行一些操作,然后关闭连接。现在我重新运行emacs.tmux.conf,并键入'asd'。第二行现在读取asd选项-g前缀C-a,但是如果我保存并再次运行emacs.tmux.conf,我将看到asdset选项-g前缀C-a

此问题会影响除第一行以外的所有行,即使在提示中键入命令时也是如此

bashrc使用respawn窗格重置窗格,并不能解决此问题。如果我创建了一个新的窗格或窗口,这个问题将在新窗格或窗口中得到修复,直到我再次运行ssh


发生了什么事?这显然是一个显示问题,因为对实际文件的检查表明我实际上没有覆盖

要解决此类问题,请在shell中键入:

$ stty sane
对于处于奇怪状态的终端,这通常是一个通用的一次性修复

要彻底解决此问题,请检查
$TERM
环境变量

在tmux内部,它应该是
TERM=screen
(可能会出现一些后缀)

tmux会自动执行此操作,但是您的
术语
环境变量可以通过shell启动/登录脚本进行更改

因此,在您的tmux窗口类型中:

$ export TERM=screen
$ emacs <...>
$export TERM=屏幕
$emacs

如果有帮助,请修改您的shell rc文件。

如果我使用ssh连接到另一台服务器,则提示会自动结束-例如,如果我的提示是:username@server2:cd foo/bar/,我再输入一些,它就会变成outputme@server2:cd foo/bar/。tmux是在server1上本地构建的,如果有什么不同的话。