Я немного устал от своих печатающих головок в Bash от того, что испортил PS1. Например, я бы выполнил команду, такую как ls
, и пока она работает, начните вводить следующую команду, например, echo
, и заголовок для echo
появится перед PS1, например
/$ls
...
ec/$echo
(здесь /$
- PS1
). Мое решение для этого состояло в том, чтобы добавить \r
к передней части PS1, чтобы он сначала очистил линию.
Кажется, это работает достаточно хорошо, но, похоже, есть странная проблема. В моем .inputrc
меня есть
"\ep": history-search-backward
чтобы позволить мне набрать M-p
чтобы вернуться назад (iTerm 2 отображает опцию для корректного выхода).
Проблема в том, что иногда, когда я набираю некоторые вещи, а затем M-p
чтобы получить предыдущую команду, тогда я делаю C-u C-k
чтобы очистить строку, первый символ остается и становится частью PS1
(он удаляется из выполненной строки, но это показано на PS1). Он исчезает, когда я выполняю команду, но всякий раз, когда я нажимаю на этот элемент в истории, даже с помощью обычной стрелки вверх, первый персонаж снова застревает там. Кажется, что это происходит только с командами определенной длины. Не имеет значения, действительно ли \r
очищает любой текст, чтобы это произошло.
У меня странная ошибка в bash и / или iTerm? Является ли добавление \r
к передней части PS1
правильным способом очистить перед ним фекалию?