Ctrl+р отличный маленький инструмент для поиска вашего .bash_history
для ранее запущенных команд.
Однако, когда я использую его в своем OS X Terminal.app, я вижу странное поведение, и мне было интересно, видит ли кто-нибудь то же самое или знает, как это исправить.
find
find . -exec grep -q "hello world" '{}' \; -print
-q "blog_posts_by" '{}' \; -print
, где присутствует вся команда, и я могу использовать клавиши курсора для перемещения по строке, но не вся она печатается. Существует несоответствие между тем, что показано в строке, и тем, что терминал на самом деле думает, что я редактирую.Кто-нибудь знает, почему это могло произойти? Искать в сети - непростое явление.
Вероятно, у вас есть escape-последовательности для цветов в вашем приглашении, которые не разграничены должным образом. Их нужно заключить в \[
и \]
.
PS1='\[\033[1;36m\]\u\[\033[0m\]@\[\033[1;34m\]\h\[\033[0m\]\$ `
Длина непечатаемых последовательностей символов не включается в длину приглашения, когда они таким образом заключены, и для правильного отображения при переносе необходимо рассчитать положение предыдущих команд.
Другая возможная причина этой проблемы - неправильный TERM
стоимость. Например, это случилось со мной, когда я использовал цвета на своем PS1, но мои TERM
был установлен на xterm
. Я изменил это на xterm-256color
а затем CTRL-r снова начал работать правильно.
Это может быть связано с тем, как клавиши выхода настроены на вашем Терминале, обычно я использую стрелку влево или вправо на iTerm или Terminal.app, поскольку я не фанат немедленного нажатия клавиши возврата, работает ли это для вас ?