在tmux

时间:2016-08-22 20:31:54

标签: 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-option -g前缀Ca ,但如果我再次保存并运行 emacs .tmux.conf ,我会看到 asdset -option -g前缀Ca

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

采购.bashrc,使用 respawn-pane 重置窗格,并不能解决这个问题。如果我创建新窗格或窗口,则会在新窗格或窗口中修复该问题,直到我再次运行ssh。

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

1 个答案:

答案 0 :(得分:3)

要解决此类问题,请输入您的shell:

$ stty sane

这通常是一种通用的一次性修复方式,可以让终端在奇怪的状态下离开。

要完全解决问题,请检查您的$TERM环境变量。

在tmux里面它应该是TERM=screen(可能会出现一些后缀)。

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

因此,在您的tmux窗口中键入:

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

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