решение1
Это действительно интеграция iTerm2. Вместо того, чтобы удалять ее, нужно было провести динамическое тестирование iTerm2 внутри их скрипта интеграции.Примечание: см. предупреждение о ssh ниже.
Есть последовательность ANSI, на которую iterm будет реагировать, которая работает независимо от того, какая оболочка/ssh активна. Для людей, желающих запустить свою собственную последовательность:printf '\x1b[1337n'
.
Ваш .bashrc (или любой другой файл оболочки init, который вы используете) вероятно имеет что-то вроде:
тест -r ~/.iterm2_shell_integration.bash && . ~/.iterm2_shell_integration.bash
Возможно, без первоначального теста. Просто измените его на еще более уродливый:
isiterm2.sh&&тест -r ~/.iterm2_shell_integration.bash && . ~/.iterm2_shell_integration.bash
Пользователи VS Code Remote Explorer/SSH VS code, похоже, автоматически вводит/передает символы в ssh-соединение при запуске. Эти команды могут быть обрезаны последовательностью сброса stty в isIterm2.sh. Мой краткосрочный хак заключался в том, чтобы сделать эту проверку/загрузку на втором дисплее приглашения. ЭтотакойХотя это и пустяк.
решение2
Струны на самом деле непоследовательности ANSI. Скорее всего, они изначально были последовательностями ANSI, но были преобразованы (из-за какой-то ошибки скрипта) на вашем удаленном компьютере, так что большинство символов были преобразованы в другую форму.
Анпоследовательность ANSIнапример, имел бы
escape[A
возможно, с необязательным ;перед A, но проблемный вывод показывает 133
( [восьмеричное число 133). Аналогично, на снимке экрана показан литерал, \033
а не экранированный символ ASCII в нескольких местах.
Вероятнее всего, разница между графическим терминалом и putty заключается в том, что первый может иметь TERM
значение xterm-256color
, в то время как PuTTY имеет собственную конфигурацию и TERM
не был установлен в PuTTY (а его значением по умолчанию является xterm
).
Ubuntu 14.04 не делал этого сам по себе (он существует уже давно, и никто не жаловался)этот), так что это "улучшение" после установки. Как и предлагалось, начните с поиска в своих собственных .bashrc
(или в добавленных вами скриптах цветовых тем - некоторые из них очень глючные).
решение3
Похоже на интеграцию оболочки iTerm2. Смотретьhttp://www.iterm2.com/documentation-shell-integration.html.
Проверьте, является ли .iterm2_shell_integration.bash источником .bash_profile.
решение4
Это происходит из-за нестандартных кодов выхода Iterm2s:Собственные коды выхода, который был выпущен здесь:Интеграция с оболочкой отображает недопустимые символы на терминалах Linux. Чтобы устранить эту проблему, выполните следующие команды на удаленном сервере, на котором установлена интеграция iTerm2:
curl https://raw.githubusercontent.com/gnachman/iTerm2/master/tests/isiterm2.sh > ~/.isiterm2.sh && chmod ug+x ~/.isiterm2.sh
Измените свой
.bash_profile
(или.profile
любой другой) файл, чтобы обусловить загрузку интеграции оболочки при успешном выполнении этого скрипта:~/.isiterm2.sh && test -e "$HOME/.iterm2_shell_integration.bash" && source "$HOME/.iterm2_shell_integration.bash"