В настоящее время у меня есть следующее .zshrc:
bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search
Тем не менее, это только кажется, что соответствует содержанию моего текущего ввода до появления пробела. Например, sudo ls /
будет соответствовать каждой строке в моей истории, которая начинается с sudo
, в то время как я хотел бы, чтобы она соответствовала только строкам, которые соответствуют всему моему вводу. (т.е. sudo ls /etc
будет соответствовать, но не соответствует sudo cat /var/log/messages
)
Что мне нужно изменить, чтобы получить желаемое поведение?
Вот мой весь .zshrc на случай, если он уместен: https://gist.github.com/919566
источник
Zsh предоставляет эту функциональность с помощью
Ex.
Найти точный код ключа по
ctrl+vKEY
Ex.
ctrl+ vUP
ctrl+ vDOWN
ctrl+ vPageUp
ctrl+ vPageDown
и т. д.
источник
$terminfo[kcuu1]
, <kbd> Вниз </ kbd> есть$terminfo[kcud1]
.В этом сообщении за 2013 год мы рекомендуем несколько сочетаний клавиш, которые соответствуют всем словам перед курсором.
(В более ранней версии этого ответа я использовал,
$terminfo
как рекомендовано в одном из комментариев к сообщению в блоге. Некоторые значения terminfo перечислены здесь .)источник
/etc/zsh/zshrc
, например$key[Up]
.$terminfo
вам необходимо изменить режимы терминала. Смотрите здесь .$key[]
вместо$terminfo[]
. Я надеюсь, что это хорошо работает для читателей!Посмотрите также проект zsh-history-substring-search .
Он предлагает то, что вы ищете, и даже может быть использован как плагин oh-my-zsh.
источник