Например, когда я ввожу следующую команду,
echo line | (cat >/dev/null; vi)
даже перенесенный в другую оболочку,
sh -c 'echo line | (cat >/dev/null; vi)'
и возвратился из Vim, теперь он не будет больше отображать возврат каретки.
Как я могу сделать, чтобы заставить его снова отобразить новые строки? (Без выхода.)
попробуйте один или оба из них:
ctrl+c
, затем введите reset
, затем нажмите enter
.ctrl+c
, затем введите stty sane
, затем нажмите enter
. ctrl+c
должен очистить любые другие символы, которые Вы, возможно, ввели в командной строке.
reset
или stty sane
обычно чинит испорченный терминал. Прочитайте страницу справочника reset
и stty
для получения дополнительной информации.
Обратите внимание, что, если терминал испорчен достаточно затем, это не могло бы быть это даже ctrl+c
или enter
будет работать как ожидалось. Существуют все еще другие методы к вводимым символам, но они включают древнее темное волшебство. В этом случае обычно легче просто закрыть терминал и запустить другой.
Мое понимание внутренних работ терминала не достаточно глубоко, чтобы объяснить, почему или как оно делает это.
Это не надлежащее использование для vi
взять вход от stdin.
Так или иначе можно получить новые строки снова с
stty sane
не сбрасывая терминал.