linux - 在 tmux 中卡在覆盖模式

标签 linux emacs terminal tmux

场景:我打开一个新的 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/

相关文章:

java - 如何在 java 中重绘打印控制台信息?

macos - Sierra 更新后找不到 sar 命令

java - 如何通过终端将文本文件输入到java程序中(就像在C++中那样)?

linux - 将文件名参数从 Bash 传递到 Perl

c - 使用 gcc/gdb 设置 Emacs 的初学者指南?

php - 如何从 PHP 的 mail() 失败中获取额外的错误信息?

Emacs:Aquamacs 更新后,自动填充模式的 Alt-q 在 LaTeX 中的数学分隔符处换行

r - ECB 是否可以在激活时仅限于 "take over"当前缓冲区?

c - 在 Linux C 中将两个进程的标准输出重定向到另一个进程的标准输入

linux - 查找重复文件