Nil*_*ann 4 ssh terminal zsh terminal.app
我只是偶然发现了一个奇怪的问题。当我通过 SSH 连接到我的服务器(centos、zsh)并输入一些内容并按退格键时,它看起来像一个空格 - 但在内部它确实删除了字符。
ls -l a
Run Code Online (Sandbox Code Playgroud)
需要注意的是之间的空间l和a实际上是当我打Backspace键。当我现在点击返回时ls -a被执行。这仅在 zsh 中,在 bash 中它工作正常。
希望任何人都知道这是怎么回事以及如何解决这个问题。
我也无法清除屏幕:
helium:~% echo $TERM
screen-256color
helium:~% clear
'screen-256color': unknown terminal type.
Run Code Online (Sandbox Code Playgroud)
这是不寻常的。我首先查看 Ctrl-L 是否有效(即 zsh 知道您的终端并且可以发出清晰的屏幕)并运行echo $TERM以查看从 Terminal.app 收到的终端类型 zsh;我有 Terminal.app 发送xterm-color,这似乎是便携和接受的。
要检查的另一件事是键入 Ctrl-H 时会发生什么,但我认为所有现代系统都已将退格键设置为 0x7F。
[更新后的屏幕信息:]
Bash 有更多的内置技巧,用于假设缺少的终端类型是 ANSI-ish,但您的根本问题$TERM是无法识别。这将破坏大多数想要向终端模拟器发出控制指令的应用程序。覆盖$TERM您的~/.zprofile:
case ${TERM} in
screen-256color) TERM=screen.xterm-xfree86
;;
esac
Run Code Online (Sandbox Code Playgroud)
这是 termcap/terminfo 问题的一部分——它依赖于每个人都有相同的名字,每个人都被更新,等等。没有进行协商。
| 归档时间: |
|
| 查看次数: |
3197 次 |
| 最近记录: |