场景:我打开一个新的tmux会话,然后运行 emacs .tmux.conf 。
.tmux.conf的第二行读取: set-option -g前缀C-a 。我输入' asd',第二行现在显示为: asdset-option -g前缀C-a 。一切都好。
我ssh到另一台服务器,做一些事情,然后关闭连接。我现在重新运行 emacs .tmux.conf ,然后输入' asd'。第二行现在读取 asd-option -g前缀Ca ,但如果我再次保存并运行 emacs .tmux.conf ,我会看到 asdset -option -g前缀Ca 。
此问题会影响除第一行以外的所有行,即使我在提示符中键入命令也是如此。
采购.bashrc,使用 respawn-pane 重置窗格,并不能解决这个问题。如果我创建新窗格或窗口,则会在新窗格或窗口中修复该问题,直到我再次运行ssh。
发生了什么?这显然是一个显示问题,因为对实际文件的检查表明我实际上没有覆盖。
答案 0 :(得分:3)
要解决此类问题,请输入您的shell:
$ stty sane
这通常是一种通用的一次性修复方式,可以让终端在奇怪的状态下离开。
要完全解决问题,请检查您的$TERM
环境变量。
在tmux里面它应该是TERM=screen
(可能会出现一些后缀)。
tmux会自动执行此操作,但您的TERM
环境变量可以通过shell启动/登录脚本进行更改。
因此,在您的tmux窗口中键入:
$ export TERM=screen
$ emacs <...>
如果有帮助,请修改您的shell rc文件。