Как включить обратный поиск в 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
Дениз
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.