Оберіть відповідники в ZSH історія-поступовий-шаблон-пошук-назад


10

Нещодавно я переключив пошук історії на використання, history-incremental-pattern-search-backwardоскільки він дозволяє створювати шаблони в пошуку. Ось як це налаштування в моєму.zshrc

bindkey -M vicmd '/' history-incremental-pattern-search-backward

Це чудово працює, але я не можу зрозуміти, як перейти до наступного матчу з меню пошуку.

% cat foobarbaz.txt
bck-i-search: f*baz

Чи є для цього ключ, обов'язковий?

Відповіді:


12

Нарешті знайшов правильний заклик. Потрібно зіставити пошук шаблонів у режимі вставки. Це був твір, який мені бракувало:

# Search backwards and forwards with a pattern
bindkey -M vicmd '/' history-incremental-pattern-search-backward
bindkey -M vicmd '?' history-incremental-pattern-search-forward

# set up for insert mode too
bindkey -M viins '^R' history-incremental-pattern-search-backward
bindkey -M viins '^F' history-incremental-pattern-search-forward

Я б використовував ^Bдля зворотного пошуку в режимі вставки, але я це відобразив на щось інше. Тож зараз ^Rі ^Fпрокручуйте сірники.


що робить -Mкоманда? У моєму випадку навіть без -Mключового слова це чудово працює ..
alpha_989

-M keymapКаже bindkey , який KEYMAP застосовувати зв'язування. Я встановив його як для режиму вставки, так і для режиму командування.
глейтрон

Дякуємо за роз’яснення. У моєму випадку я просто маю bindkey '^R' history-incremental-pattern-search-backward, і це працює. Я також використовую /команду за замовчуванням у звичайній моделі vi в zsh. Зважаючи на це, я можу шукати історію команд, і як тільки вона знайде команду, вона просто забезпечить це в командному рядку. Тоді я можу змінити останню команду, якщо потрібно.
alpha_989

Якщо я використовую '^R' history-incremental-pattern-search-backward, з іншого боку, він просто приземлить мене до останньої команди, яка відповідає рядку пошуку. Однак я не знайшов способу насправді змінити команду. Знайшовши відповідну команду, що відповідає рядку пошуку за допомогою інкремантального пошуку скорочувача, чи є певні комбінації клавіш, які я можу натиснути, щоб змінити команду?
alpha_989

9

Відповідно до zshzleсторінки керівництва для zsh 4.3.10 жоден ключ не пов'язаний за замовчуванням. Потрібно додати прив’язки до isearchкарти, і доступні лише декілька віджетів. Наприклад, ви можете:

bindkey -M isearch '^R' history-incremental-search-backward
bindkey -M isearch '^S' history-incremental-search-forward

bindkey -lне відображає isearchвідображення
claytron

@claytron: має бути випуском версії: isearchнове в 4.3.10, тоді як history-incremental-pattern-search-backwardз'явилося в 4.3.7 (якщо я правильно прочитав журнал змін).
Жил "ТАК - перестань бути злим"

Я використовую 4.3.10, не впевнений, чому його немає. Використання прив'язок режиму вставки працювало для мене.
керамтрон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.