Как включить обратный поиск в Zsh?

38

Я недавно перешел на Zsh (наконец-то) и мне это нравится! Пока что одна вещь, которую я пропускаю, - это Ctrl+ Rпоиск по истории.
У меня правильно настроена история

HISTSIZE=10000
SAVEHIST=10000
HISTFILE=~/.zsh_history

и я использовал viпривязки клавиш

bindkey -v

Но Ctrl+ Rне работает. Он удаляет строку над текущей строкой, что также не должно соответствовать поведению в vim.

Какие-либо предложения?

Али
источник
1
Кстати, быстрое решение - использовать Ctrl[ /
неинкрементный

Ответы:

60

Если я правильно помню, вам нужно явно установить его, даже с bindkey -v. Используйте что-то вроде этого:

bindkey -v
bindkey '^R' history-incremental-search-backward
Крис Даун
источник
4
Возможно history-incremental-pattern-search-backward, это альтернативное действие для использования в этом контексте.
maxschlepzig
2
@maxschlepzig извините, в чем разница между этими двумя?
Али
2
@Ali, с -pattern- версии вы можете использовать поиск-шаблоны (какой стиль, т.е. подстановку или регулярное выражение () зависит от других частей вашего ЗШ-конфигурации?) - как , например , вы можете использовать поиск-шаблон fo*barс , grepчтобы соответствовать " fobar ',' foobar ',' fooobar 'и т. д.
maxschlepzig
3
Я получил ошибку. Завершение ^ R в двойные кавычки сделало это. bindkey "^R" history-incremental-pattern-search-backward
Рамон Тайаг
1
bindkey -vдолжен предшествоватьhistory-incremental-search-backward
Дениз