zsh history up arrow завершение истории не работает

Я не могу заставить привязки истории Zsh работать так, как мне бы хотелось. Я хотел бы иметь возможность печатать sudo а затем используйте стрелку вверх для прокрутки всех команд истории с префиксом sudo,

Я считаю, что это должно быть bindkey "^[[5~" up-line-or-history, У меня есть это в lib/key-bindings.zsh и этот файл должен быть получен. Я использую практически неизмененную установку oh-my-zsh.

У меня есть то, что я думаю, то же самое .zshrc и lib файлы на ВМ и история работает как я хочу. ВМ работает Zsh 4.3.10 в то время как моя другая машина (та, которая не работает) включена 5.0.0, Это проблема версии?

5 ответов

См. https://github.com/robbyrussell/oh-my-zsh/issues/1720

Добавление этого в.zshrc решило это для меня:

# start typing + [Up-Arrow] - fuzzy find history forward
if [[ "${terminfo[kcuu1]}" != "" ]]; then
    autoload -U up-line-or-beginning-search
    zle -N up-line-or-beginning-search
    bindkey "${terminfo[kcuu1]}" up-line-or-beginning-search
fi
# start typing + [Down-Arrow] - fuzzy find history backward
if [[ "${terminfo[kcud1]}" != "" ]]; then
    autoload -U down-line-or-beginning-search
    zle -N down-line-or-beginning-search
    bindkey "${terminfo[kcud1]}" down-line-or-beginning-search
fi

Я не уверен, изменилось ли это с 4.3.10 до 5.0.0, но вызванный вами виджет называется history-search-backward в последних нескольких выпусках.

Также хорошая связка ключей history-incremental-pattern-search-backward где вы можете ввести (в специальном приглашении после вызова этого виджета), например, sudo*destdir циклически проходить все команды, начиная с sudo и заканчивая destdir,

В моем случае ошибка заключалась в том, что я копировал следующие переменные среды из bash в zsh:

      # History modifications
export HISTTIMEFORMAT="%y-%m-%d %T  "
export HISTSIZE=-1
export HISTFILESIZE=-1

Удаление тех, что в zsh, помогло.

Чтобы это работало на Ubuntu, сделайте echo DEBIAN_PREVENT_KEYBOARD_CHANGES=yes>>~/.zshenv,

Изменениеexport HISTSIZE=кexport HISTSIZE=999999999в ~/.zshrc решил проблему для меня.

Другие вопросы по тегам