История zsh (или, может быть, oh-my-zsh) путается с многострочными командами

Если я использую стрелку вверх в zsh-сессии, как и следовало ожидать, я получаю предыдущие команды от самых новых до самых старых. Теперь (будь то zsh или oh-my-zsh, делаю это, я не знаю), но если я наберу начало строки и нажимаю стрелку вверх, я получаю строки из своей истории, которые начинаются с того, что я набрал. Все хорошо до сих пор.

Проблема возникает, если я набираю команду с несколькими линиями, например:

for i in foo bar echo $i 

То, если я позже нажму на стрелку вверх, как только он попадет в команду с несколькими линиями, тогда будет отображаться только результат, начинающийся с. Итак, если моя история похожа:

 touch foo rm foo for i in foo bar echo $i ls 

И я нажимаю стрелку вверх. Я получаю команду ls затем команду multi-line for команды, и с этого момента я вижу только команды, которые есть в моей истории, а не команды rm или touch .

Есть ли какой-нибудь способ поиска в хронологическом порядке, не застревая всякий раз, когда история попадает в многострочную команду?

One Solution collect form web for “История zsh (или, может быть, oh-my-zsh) путается с многострочными командами”

Описанное поведение связано с использованием up-line-or-search , который будет перемещаться по строке команды и в первой строке команды, которую он будет искать в истории для строк, начинающихся с первого слова.

Объяснение для вашей проблемы: начиная с пустой строки любая строка в истории будет соответствовать. Пока обнаруживаются только однострочные команды, нет никакой разницы в поведении для up-history up-line-or-history или up-line-or-history . Но при достижении многострочной команды он больше не ищет, а проходит через линии. Когда верхняя строка будет достигнута, он начнет новый поиск, но теперь он ищет первое слово в этой строке вместо продолжения старого поиска любой строки.

По умолчанию Up отображается в up-line-or-history , который возвращается назад через записи истории и в случае многострочных команд через каждую строку. up-history также будет проходить через историю, но обрабатывать многострочные команды, как однострочные. Оба будут обеспечивать ожидаемое поведение.

Я бы предложил выполнить поиск конфигурации zsh и Oh-my-ZSH, где привязана up-line-or-search вниз, и заменить ее up-line-or-history или удалить привязку, поскольку up-line-or-history – это По умолчанию.

Кроме того, в зависимости от используемого терминала ключевое секвентирование для Up равно либо ^[OA либо ^[[A Чтобы получить последовательность действий из вашей оболочки, оба должны быть установлены в одни и те же команды.

  • На OS X, как я могу запустить Cacoa emacs * и * перенести его на передний план?
  • Откройте новую вкладку в том же каталоге
  • Почему `zsh` вставляет` ~ `, когда я нажимаю клавишу удаления?
  • Требуется ли учетная запись администратора для использования оболочек, таких как zsh и fish?
  • ^ C не работает в zsh на Mac OSX
  • Как удалить файлы в командной строке с регулярными выражениями?
  • Scp с zsh: совпадений не найдено
  • Как я могу выполнить рекурсивную поиск и замену из командной строки?
  • Разделите стрелку на локальную и глобальную историю ZSH
  • Как установить короткую ссылку symlink на Sublime Text 3 в терминале?
  • Изменение заголовков и заголовков iTerm2 в zsh
  • Завершение истории oh-my-zsh
  • Interesting Posts

    Существует ли список для списка пользователей группы безопасности

    Где установить небольшие программы без инсталляторов в Windows?

    Может ли командная строка Windows поддерживать Linux «cd -»?

    Как создать и сохранить группу контактов в Skype?

    Как я могу контролировать использование видеопамяти?

    Используйте экран GNU в качестве логина "shell"

    Можно ли хранить произвольные данные в файле изображения?

    Как изменить иконки панели инструментов Firefox?

    Удалить определенное имя файла в нескольких ZIP-файлах

    Невозможно установить обновления на чистую Windows 8.1

    Изменить тип сети для адаптера (общедоступный или частный)

    Одновременное использование двух беспроводных сетевых адаптеров на настольном ПК Windows 10

    Firefox и Thunderbird не запускаются

    Получите Excel не равными значениями пространства вдоль оси y

    Использование emacs для управления процессами командной строки

    Давайте будем гением компьютера.