Есть очень приятная функция, которую я люблю в ZSH. Когда вы набираете! символ, за которым следует слово + клавиша TAB, он заставит оболочку вытащить последнюю команду, начинающуюся с слова, за которым следует! и расширить его; например .:! символ для вызова поиска в zsh
% !ssh
Тогда ожидаемое поведение является то, что вы можете использовать клавиши со стрелками вверх и вниз, чтобы перебрать истории с размахом ограничивается теми командами, которые начинаются с SSH. Теперь я получаю эту работу в Mac OS X, но по какой-то причине я не получаю ее в своем Linux-окне. Мой bindkeys выглядит в моей установке Linux:
[email protected] ⮀ ~ ⮀ bindkey | fgrep history
"^N" down-line-or-history
"^O" accept-line-and-down-history
"^P" up-line-or-history
"^R" history-incremental-search-backward
"^S" history-incremental-search-forward
"^X^N" infer-next-history
"^Xr" history-incremental-search-backward
"^Xs" history-incremental-search-forward
"^[ " expand-history
"^[!" expand-history
"^[," _history-complete-newer
"^[/" _history-complete-older
"^[<" beginning-of-buffer-or-history
"^[>" end-of-buffer-or-history
"^[N" history-search-forward
"^[OA" up-line-or-history
"^[OB" down-line-or-history
"^[P" history-search-backward
"^[[5~" up-line-or-history
"^[[6~" down-line-or-history
"^[n" history-search-forward
"^[p" history-search-backward
Что bindkey я должен изменить в порядке получения поведения ожидается? Я уже изменил некоторые из них, но результат не является желательным. Я был бы рад, если бы кто-нибудь мог мне помочь. Версия zsh, которую я установил, - 5.0.2.
Edited чт 30 май 10:27:49 CEST 2013:
@Francisco он работал. Я не знал, что необходимая опция была в режиме «вверх-line-or-search» и «down-line-or-search». Так что я следующим образом:
1) Я проверил, которые были назначены ключи:
⮀ ~/.dotfiles ⮀ ⭠ ihacku ⮀ bindkey | fgrep search
"^R" history-incremental-search-backward
"^S" history-incremental-search-forward
"^Xr" history-incremental-search-backward
"^Xs" history-incremental-search-forward
"^[N" history-search-forward
"^[OA" up-line-or-search
"^[OB" down-line-or-search
"^[P" history-search-backward
"^[[A" up-line-or-search
"^[[B" down-line-or-search
"^[n" history-search-forward
"^[p" history-search-backward
2) Затем я напечатал Ctrl + v
следуют стрелка вверх, а затем вниз стрелку и я получил:
⮀ ~/.dotfiles ⮀ ⭠ ihacku ⮀ ^[OA
⮀ ~/.dotfiles ⮀ ⭠ ihacku ⮀ ^[OB
3) Я добавил свой код на .zshrc:
bindkey '^[OA' up-line-or-search
bindkey '^[OB' down-line-or-search
Примечание: Я добавил эти строки после загрузки oh-my-zsh.sh
.
5) Я соерсед мой .zsh:
. ~/.zshrc
И, наконец, я получить ожидаемый результат. Большое спасибо за Вашу помощь.