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

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

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

  • Включить плагин для Oh my Zsh в Docker
  • В zsh разница между cat <(cat) и cat | cat против cat = (кошка)?
  • Ищете удобный способ создания «постоянного массива»,
  • Как найти функцию zsh, связанную с виджетами zle?
  • Как я могу выполнить вкладку umount, ограничивая тома в определенном каталоге?
  • Поиск тестируемой утилиты для получения абсолютного пути к относительной целевой символической ссылке
  • есть ли способ установить раскраску для вкладки cd?
  • Поиск файлов в ZSH не работает
  • 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, и после редактирования вашей первой многострочной командной строки вы можете решить, что по умолчанию вы предпочитаете. ☺

    Interesting Posts

    Команда поиска возвращает неверные файлы

    не может запускать удаленную команду ssh без heredoc

    извлечение доменных имен (имен хостов) из текстового файла

    Почему #! / Usr / bin / env bash не работает в моей системе?

    понимание номеров версий пакета Debian dpkg

    Могу ли я обрезать длинные имена файлов в листинге ls

    Как создать зашифрованную систему с несколькими дистрибутивами Linux?

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

    Как изменить конкретный столбец с помощью sed или awk на основе определенного шаблона

    Как я могу переключаться между графическими драйверами?

    Проблемы с моментальным снимком LVM

    Плохо ли иметь низкую энтропию в / dev / random?

    Может ли каждая программа или приложение работать с другим языком?

    Яркость экрана всегда максимальная при выходе из системы или перезапуске

    Как поддерживать (верхнюю) строку, видимую при прокрутке?

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