修复在 mate-terminal 的 tmux 中运行的 nano 中的滚动

修复在 mate-terminal 的 tmux 中运行的 nano 中的滚动

问题:

  • 我打开一个终端(在 Linux Mint 中,所以是 mate-terminal)
  • zsh 是 shell
  • 然后我运行 tmux
  • 使用 nano 编辑文件
  • 使用光标上下滚动该文件
  • 问题:在 nano 中向下滚动时,仅刷新终端窗口的下半部分
  • 问题:在nano中向上滚动时,只有终端windo的上半部分被刷新

滚动时,文件的完整纳米视图不会在我的终端窗口中刷新。有小费吗?

编辑:我的.tmux.conf

看来这一行具体是罪魁祸首(因为注释掉它可以解决问题):

set -g default-terminal "xterm-256color"

我很确定我添加了该行,因为我什至在 SSH 会话期间运行 nano 时都遇到问题。

这是完整的文件:

set-option -g default-shell /bin/zsh

# Make sure tmux knows we're using 256 colours, for
# correct colourised output
set -g default-terminal "xterm-256color"

# The following were marked as "unknown", so
# I do know what I'm doing wrong.
#set -g mode-mouse on
#setw -g mouse-select-window on
#setw -g mouse-select-pane on

# Attempting to stop "alert" sound upon startup
# but none of these are working...
set-option bell-on-alert off
set-option bell-action none
set-option visual-bell off

答案1

来自 tmux 常见问题解答:

****************************************************** **************************
* 请注意:大多数显示问题都是由于错误的术语造成的!前 *
*报告问题请确保内部术语设置正确并且*
* 外部 tmux。 *
**
* tmux 内部的 TERM 必须是“screen”或类似的(例如“screen-256color”)。 *
* 不要费心报告不存在的问题! *
**
* 在外部,它必须与您的终端匹配:特别是,使用“rxvt”作为 rxvt *
* 和衍生物。 *
****************************************************** **************************

http://tmux.git.sourceforge.net/git/gitweb.cgi?p=tmux/tmux;a=blob;f=FAQ

答案2

我有一个非常相似的问题,但我使用的是 vim 而不是 nano。我还从源代码编译了 tmux(这个细节很重要)。我一直在绞尽脑汁试图找出解决方案,虽然我不知道确切的原因,但我想提供一些我试图最终使其发挥作用的步骤。我的问题是什么(改编自原始问题):

  • 我打开一个终端(在 CentOS 7 中,即 gnome-terminal)
  • zsh 是 shell
  • 然后我运行 tmux
  • 使用 vim 编辑文件
  • 将视图拆分为维姆:sp
  • 创建一个垂直分割的窗格多路复用器
  • 返回文件,用光标上下滚动该文件
  • 问题:在任一 vim 视口中向下滚动时,仅刷新视口的最底部(仅刷新光标所在的行)
  • 问题:在任一 vim 视口中向上滚动时,仅刷新视口的最顶部(仅刷新光标所在的行)
  • 然而,有时,如果我调整终端的缩放(Ctrl-minusCtrl-Shift-+) ,我可以使底部视口正确滚动
  • 问题:除此之外,如果我转到新的 tmux 窗格并输入一堆文本(带空格),然后转到命令的开头并使用删除键删除一些字符,终端将打印一部分命令位于最上面一行当我还在编辑的时候。而且我无法准确地了解实际输入的内容。不好玩。

以下是我最终修复它的方法:首先,我建议确保 tmux 使用screen-256colorTERM 设置。将其放入您的 .tmux.conf 中:

设置-g 默认终端“screen-256color”

现在关闭所有 tmux 会话。重新打开 tmux 并查看是否以某种方式解决了问题:

回显$TERM

应该说screen-256color。不幸的是,这对我来说还不够,我遇到了同样的问题。

什么最终为我修复的方法是从 github 克隆最新的 tmux 版本(在撰写本文时为 v2.8),然后重新编译。我将这个新的构建/二进制文件放在一个单独的目录中,你瞧,新的二进制文件可以工作,而旧的二进制文件(未知版本)仍然不能工作。不过,旧版本仍然是最新版本。

相关内容