Як увімкнути зворотний пошук у zsh?


38

Нещодавно я перейшов на zsh (нарешті) і люблю це! Поки що одне, чого мені не вистачає, - це Ctrl+ Rпоступовий пошук історії.
У мене історія налаштована належним чином

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

і я використовував viключі

bindkey -v

Але Ctrl+ Rне працює. Він видаляє лінію над поточною лінією, що не є поведінкою, яку вона повинна мати у vim.

Будь-які пропозиції?


1
btw швидкий обхід полягає в тому, щоб використовувати не поступовий пошук: Ctrl+ [ /...
maxschlepzig

Відповіді:


60

Якщо я пам'ятаю правильно, вам потрібно це чітко встановити, навіть якщо bindkey -v. Використовуйте щось подібне:

bindkey -v
bindkey '^R' history-incremental-search-backward

4
можливо history-incremental-pattern-search-backward, це альтернативна дія, яку слід використовувати в цьому контексті.
maxschlepzig

2
@maxschlepzig вибачте, в чому різниця між ними?
Алі

2
@Ali, з -pattern- версіями ви можете використовувати шаблони пошуку (який стиль, тобто глобулінг чи регекс (?) Залежить від інших частин вашої zsh-конфігурації) - наприклад, наприклад, ви можете використовувати шаблон пошуку 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.