Странное поведение/рендеринг клавиши Backspace в Terminal.app, когда SSHing в zsh, использующий tmux/screen

Я просто наткнулся на странную проблему. Когда я SSH в мой сервер (песни, zsh) и я ввожу некоторый материал и поражаю клавишу Backspace, Это похоже на пространство - но внутренне это действительно удалило символы.

ls -l a

Обратите внимание что пространство между lи a на самом деле, когда я поразил клавишу Backspace. Когда я теперь поразил возврат ls -a выполняется. Это находится только в zsh, в ударе он хорошо работает.

Надежда у любого есть идея, о чем это - все и как зафиксировать это.

Обновление: Только происходит при использовании tmux/screen

Я также не могу очистить экран:

helium:~% echo $TERM
screen-256color
helium:~% clear
'screen-256color': unknown terminal type.
4
задан 05.01.2011, 12:53

1 ответ

Это необычно. Я запустил бы путем наблюдения, работает ли Ctrl-L (т.е., zsh знает терминал и может выпустить ясный экран), и выполнение echo $TERM видеть, какой терминал вводит zsh, полученный от Terminal.app; у меня есть Terminal.app, отправляют xterm-color и это, кажется, портативно и принято.

Другая вещь проверить - то, что происходит, когда Вы вводите Ctrl-H, но я думал, что все современные системы обосновались на 0x7F для клавиши Backspace.

[постобновление с информацией об экране:]

Bash имеет больше встроенных взломов для предположения, что недостающие терминальные типы являются выходом ANSI, но Ваша корневая проблема состоит в том что $TERM является нераспознанным. Это повредит большинство приложений, которые хотят выпустить директивы управления к эмулятору терминала. Переопределение $TERM в Вашем ~/.zprofile:

case ${TERM} in
  screen-256color) TERM=screen.xterm-xfree86
  ;;
esac

Это - часть проблемы termcap/terminfo - это полагается на всех имеющие те же имена, все обновляемые, и т.д. Никакое согласование не сделано.

5
ответ дан 07.12.2019, 20:25

Теги

Похожие вопросы