如果我的术语有误,请原谅。多年来,我一直使用 PuTTy 通过 ssh 连接到各种框,然后使用 neovim 编辑文件。通常,当我退出 neovim 时,进入之前屏幕上显示的内容仍然存在。使用 Windows 终端时,我看到的是一个空白屏幕。
在大多数方面,Windows Terminal 似乎比 PuTTy 好得多,但尽管我搜索了很久,还是找不到设置或解决方案。许多人都坚信 WT 是 PuTTy 的绝佳替代品。
如果我的术语有误,请原谅。多年来,我一直使用 PuTTy 通过 ssh 连接到各种框,然后使用 neovim 编辑文件。通常,当我退出 neovim 时,进入之前屏幕上显示的内容仍然存在。使用 Windows 终端时,我看到的是一个空白屏幕。
在大多数方面,Windows Terminal 似乎比 PuTTy 好得多,但尽管我搜索了很久,还是找不到设置或解决方案。许多人都坚信 WT 是 PuTTy 的绝佳替代品。
\e[?1049h
从v1.14 版本开始, Windows 终端已经支持备用屏幕( ) 。要测试它,请
echo "$([char]0x1B)[?1049h"
在 PowerShell 或printf '\e[?1049h'
Bash 中运行。执行相同操作1049l
将切换回常规模式。最好不要在未先检查新值是否适合终端的情况下从 .bashrc 设置 TERM。虽然许多终端在一定程度上是交叉兼容的(其中大多数都实现了相同的 DEC 和 xterm 扩展),但一个终端的特定TERM 值可能与另一个终端有太大差异 - 例如
putty-256color
PuTTY 的 TERM 值与 Windows Terminal 实现的值有一点不同。(Windows Terminal 有自己的 terminfo DB 条目:
TERM=ms-terminal
;但是该条目可能有点过时,因为 terminfo 的更新速度不如 WT 开发快。)不幸的是,没有好的办法从 .bashrc 检查是否
putty-256color
合适。相反,如果您使用 PuTTY,您应该设置它发送到服务器的默认 TERM 值并保存为“默认会话”。但至少,如果你想使用“xterm-256color”,不要盲目使用
TERM=xterm-256color
——至少把它放在一个if [ $TERM = ... ]
. 例如: