Как сделать поведение истории о-мой-zsh похожим на Bash's?

Недавно я переключился на oh-my-zsh, и я не могу привыкнуть к тому, как работает стрелка вверх. Когда я вхожу в ssh, например, и нажимаю, он показывает только команды, начинающиеся с ssh, тогда как я предпочел бы, чтобы вместо этого отображалась предыдущая команда. Как я могу заставить себя вести себя так, как это делает Баш, к чему я уже привык?

Обратите внимание, что добавление строк из ответа в конец моего zshrc не помогло, и это не произошло после обновления, сразу после переключения на oh-my-zsh из bash.

  • Есть ли простой способ получить массив всех аргументов, которые не начинаются с дефиса?
  • 256 цветов в Zsh
  • перенаправление ввода-вывода zsh: перенаправление и последующее соединение; что происходит?
  • Почему я получаю разные результаты с тем же пользователем и командой history?
  • история не сохраняется в zsh
  • Zsh - более интеллектуальная автокоррекция
  • Как сохранить распечатку последней команды в переменной оболочки в urxvt / zsh?
  • command-click git commit ID в терминале и взять его в github?
  • Как зарегистрировать номер терминала в истории bash?
  • Объявление Баша -p HISTIGNORE приносит бах! Зачем?
  • Отсутствие выделения zsh-синтаксиса в tmux
  • Как остановить bash из файлов с проверкой синтаксиса?
  • One Solution collect form web for “Как сделать поведение истории о-мой-zsh похожим на Bash's?”

    Как ни странно, ответ на вопрос, который люди предлагают в качестве дубликата …

      bindkey '\ e [A' история-начало-поиск-назад
     bindkey '\ e [B' history-begin-search-forward 

    … это точно неправильный ответ . Это гарантирует, что контрольные последовательности вашего терминала для клавиш редактирования стрелок будут отображаться ZLE в виджеты расширения, history-beginning-search-backward и с history-beginning-search-forward , которые предоставляются плагином для history-substring-search Oh My ZSH ,

    Это именно то, чего вы не хотите.

    Вы пытаетесь отключить эту функцию, потому что предпочитаете другое поведение; не пытаясь восстановить его, потому что он сломан.

    Вы хотите, чтобы эти ключи отображались в виджетах, как в ванильном Z Shell, Oh My ZSH, являющемся баррелей расширений и настроек Z-оболочки, которым нравятся некоторые (но не все) люди. Вина Виллы Z Shell имеют примерно прежнее поведение оболочки Bourne Again, которое вы предпочитаете. (В отличие от оболочки Bourne Again, однако, если у вас есть многострочный редакторский буфер, они будут перемещаться вверх и вниз внутри него до, в верхнем и нижнем краях буфера, перемещая вверх и вниз по истории.)

    Этими виджетами будут:

      bindkey "$ terminfo [kcuu1]" up-line-or-history
     bindkey "$ terminfo [kcud1]" down-line-or-history 

    Обратите внимание на то, как один работает, чтобы не связать один конкретный тип терминала с вашими сценариями. В качестве альтернативы можно использовать "$termcap[ku]" и "$termcap[kd]" . Z Shell, предполагая, что у вас есть соответствующие модули, поддерживает карту для обоих. Вообще мир предпочитает terminfo, если он имеет это в наши дни. Чтобы быть строго пуленепробиваемым, в чем-то, что вы используете с гетерогенными системами или предоставляете другим людям, вам понадобится test -n там – так же, как вы найдете расширения Oh My ZSH.

      test -n "$ terminfo [kcuu1]" && bindkey "$ terminfo [kcuu1]" up-line-or-history
     test -n "$ terminfo [kcud1]" && bindkey "$ terminfo [kcud1]" down-line-or-history 

    (В крайнем случае, чтобы справиться с некоторыми маловероятными возможностями, вам понадобится некоторое расширение переменной "${terminfo[x]-${termcap[y]}}" Расширения Oh My ZSH не беспокоят этого последнего, и в Практика практически у всех есть модули termcap и terminfo, и все, о чем вам нужно беспокоиться, заключается в том, действительно ли запись для вашего текущего типа терминала определяет соответствующие контрольные последовательности, что и есть test -n для.)

    Более точное приближение поведения оболочки Bourne Again было бы

      bindkey "$ terminfo [kcuu1]" up-history
     bindkey "$ terminfo [kcud1]" down-history 

    Это не стандартная версия Vanilla Z Shell, и после редактирования вашей первой многострочной командной строки вы можете решить, что по умолчанию вы предпочитаете. ☺

    Linux и Unix - лучшая ОС в мире.