Когда вы устанавливаете тип TERM, вы указываете хосту, какой TERMCAP использовать для рисования в окне терминала. Большинство хостов * NIX не знают, что такое термин «cygwin», поэтому они не знают, как выполнять манипуляции с символами на экране, такие как вставка, удаление, прокрутка, изменение шрифта и т. Д.
Если вы измените переменную TERM в CYGWIN до telnet или SSH на хост, вы получите намного лучшие результаты:
В CYGWIN:
d@test01 ~ $ TERM=ansi;export TERM $ ssh suntest1 d@suntest1's password: Sun Microsystems Inc. SunOS 5.8 Generic patch October 2001 d pts/1 test01 Fri Oct 12 00:15 still logged in $ echo $TERM ansi $_
Хост теперь знает, что у вас есть тип терминала ANSI, и он может использовать свой файл ANSI TERMCAP, чтобы сообщить ему, как общаться.
Если вы не можете заставить это работать, и почти все работает правильно, кроме возврата, вы можете перепрограммировать «getty» на хосте, к которому вы подключаетесь, чтобы узнать, что вы хотите, и вот как (это самый старый, самый распространенный и самый универсальный способ решения проблем возврата / удаления):
Вы ssh или telnet к вашему хосту и на хосте вы запускаете команду stty. Если вы нажмете клавишу «BACKSPACE», и она не вернется назад, это потому, что терминал, вероятно, ищет другой символ, основанный на типе TERM. Вместо того, чтобы копаться во всем этом, вы можете вручную установить определение backspace в CLI или в своем файле .profile, .bashrc или .bash-profile в вашем каталоге $ HOME по своему желанию или на основе разновидности * NIX, которой вы являетесь с помощью.
Поэтому, если вы нажмете ^ H (это CONTROL-H), и ваша клавиша выполнит резервное копирование, но вы нажмете клавишу BACKSPACE, и она не попытается использовать stty следующим образом:
stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]
В большинстве случаев это будет выглядеть так:
stty erase \^?[ENTER]
«\» Говорит ему, что следующий символ будет непечатным управляющим символом и будет принимать его, а не «интерпретировать» его.
Как только вы нажмете [ENTER], вы сможете нажать клавишу [BACKSPACE] и вернуть ее / удалить все, что вы ввели.
Вы можете установить это в своей оболочке.
Теперь, если вы все еще используете VI, иногда перевод не работает, и вам действительно нужно набрать ^ H в vi, но это нормально.
Вы могли бы сказать:
стереть стереть к [ENTER]
и он буквально перевел бы 'k' в символ стирания / удаления ..
-D