【问题标题】:how to refresh entire screen in putty如何在腻子中刷新整个屏幕
【发布时间】:2014-06-12 23:26:39
【问题描述】:

我有一台 redhat 机器,我使用 putty 远程使用它,这就是现在困扰我很多...

每次我使用任何编辑器打开和关闭文件时,我的提示都会显示在底行,而不会刷新屏幕内容。这确实有问题,因为在我打开该文件之前,我看不到屏幕上的先前输出,而该文件在关闭后仍然显示。

有没有办法解决这个问题。我希望它表现得像 gnome 终端。当我使用 ubuntu 服务器时,我认为不会发生这种情况。

我知道这是传统的 tty 行为,但我不想要它......

提前致谢。

【问题讨论】:

  • 你在用screen吗?
  • 是的,但在不使用屏幕的情况下也会发生这种情况
  • vim screen restore的可能重复
  • 嘿,谢谢,这对屏幕很有用。但是关于如何让它在没有屏幕的情况下以同样的方式工作的任何想法

标签: remote-access redhat putty tty


【解决方案1】:

如果您的终端支持备用屏幕缓冲区,则应在其 terminfo 条目中定义 rmcupsmcup

% infocmp | grep -e rmcup -e smcup
    ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
    smcup=\E7\E[?47h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,

如果在您的 .screenrc 中启用 altscreen 不能解决问题,请尝试将这两行添加到您的 .vimrc:

set t_ti=^[[?47h
set t_te=^[[?47l

(注意^[是转义,我输入的是ctrl-vesc
Vim 将在启动时将 ti 回显到终端,在退出时将 te 回显,指示 shell/xterm/screen 切换屏幕缓冲区。

【讨论】:

  • 我没有定义这些,但 altscreen 对我有用。所以要让它在屏幕外工作,我需要 infocmp 吗?我可以对我的 vimrc 进行更改。谢谢
  • 如果当前 TERM 的 terminfo 设置了 rmcupsmcup,Vim 应该在开始和退出时回显这些序列以切换屏幕缓冲区。如果没有定义,您可以尝试使用不同的 TERM,修改当前 TERM 的 terminfo,或将这些序列添加到 .vimrc。
猜你喜欢
  • 2020-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-07
  • 2015-11-09
  • 2019-09-20
  • 1970-01-01
  • 2015-04-06
相关资源
最近更新 更多