Например, если я tail -f
использую файл или read
пользовательский ввод, я <Enter>
получу ^M
в терминале вместо завершения read
или добавление новой строки в stdout. ^J
работает отлично.
Я вхожу ssh
в систему Ubuntu, если это имеет значение. Это происходит со мной как в zsh, так и в bash. Одно из решений, с которым я играл, это переназначение ^M
to ^J
в zsh, но похоже, что это не решит проблему с корнем. Кто-нибудь знает, что может быть причиной этого?
Изменить: Чтобы ответить на некоторые вопросы, я вхожу ssh
в Ubuntu из OSX. Я использую iTerm и Zsh. Я также забыл упомянуть, что я использую tmux на машине с Ubuntu.
Изменить 2: пропустил вопрос. Когда я печатаю, Ctrl-V Enter
я получаю ^M
(как на OSX и Ubuntu).
Редактировать 3: На OSX и Ubuntu echo $TERM
производит screen-256color
.
источник
Ответы:
В случае, если у кого-то еще есть эта проблема, скорее всего, это проблема с настройкой линии терминала stty, а не проблема TERM. Если это случится с вами снова, попробуйте запустить
stty sane
и дайте нам знать, если это исправит.источник
Попробуйте запустить,
stty -a
чтобы просмотреть настройки терминала. Я подозреваю, что вашиicrnl
настройки не установлены и будут отображаться как-icrnl
(знак минус означает, что он выключен) вместо того, чтобы иметь обычную настройку включения. Вот как обычно настраивается мой терминал при входе в систему:И у меня нет проблем с окончаниями строк: либо return (^ M), либо enter (^ J) заканчивают вводные строки. Но если я
icrnl
выключаю, коды ^ M внезапно появляются каждый раз, когда я разговариваю с программой, и нажимаю ввод:Код
icrnl
означает «превратить перевод каретки в новые строки» и скрывает от запущенной программы, что вы можете вводить ^ M, когда Unix действительно хочет ^ J. В старых клавиатурах использовалась отдельная клавиша Return и Enter (где Return обычно продвигал вас через форму, а Enter отправлял ее), но сегодня у нас, как правило, есть только одна клавиша конца строки, и поэтому этот параметр терминала помогает объединить два значения.Добавьте
stty icrnl
команду к вашему.profile
или,.bashrc
если вы обнаружите, что это действительно проблема установки.источник