场景:我打开一个新的 tmux session ,然后运行 emacs .tmux.conf。
.tmux.conf 的第二行是:set-option -g prefix C-a。我输入“asd”,第二行现在显示为:asdset-option -g prefix C-a。一切顺利。
我 ssh 到另一台服务器,做一些事情,然后关闭连接。我现在重新运行 emacs .tmux.conf,然后输入“asd”。第二行现在显示为 asd-option -g prefix C-a,但如果我再次保存并运行 emacs .tmux.conf,我将看到 asdset-option -g 前缀 C-a。
此问题会影响除第一行以外的所有行,即使我在提示符下键入命令也是如此。
采购 .bashrc,使用 respawn-pane 重置面板,不能解决这个问题。如果我创建一个新的 Pane 或窗口,问题会在新的 Pane 或窗口中得到解决,直到我再次运行 ssh。
这是怎么回事?这显然是一个显示问题,因为对实际文件的检查表明我实际上并没有覆盖。
最佳答案
要解决此类问题,请在您的 shell 中键入:
$ stty sane
这通常是一种通用的一次性修复程序,用于解决终端在奇怪的状态下停止运行的问题。
要彻底解决这个问题,请检查您的 $TERM
环境变量。
在 tmux 中,它应该是 TERM=screen
(可能会出现一些后缀)。
tmux 会自动执行此操作,但您的 TERM
环境变量可以通过 shell 启动/登录脚本更改。
因此,在您的 tmux 窗口中键入:
$ export TERM=screen
$ emacs <...>
如果有帮助,请修改您的 shell rc 文件。
关于linux - 在 tmux 中卡在覆盖模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39088240/