Вопрос Цикл через совпадения в ZSH history-incremental-pattern-search-backward


Недавно я переключил поиск истории на использование history-incremental-pattern-search-backward поскольку он позволяет использовать шаблоны в поиске. Вот как это настроить в моем .zshrc

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

Это отлично работает, но я не могу понять, как перейти к следующему матчу из меню поиска.

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

Есть ли необходимость в этом?


9
2017-10-10 07:27


происхождения




ответы:


Наконец нашел правильное заклинание. Вам нужно отобразить поиск по шаблону в режиме вставки. Это была часть, которую я отсутствовал:

# 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 цикл через спички.


9
2017-10-10 16:31



что это -M команда делает? В моем случае даже без -M ключевое слово это отлично работает .. - alpha_989
-M keymap сообщает bindkey, к какой клавиатуре применяется привязка. Я настроил его как в режиме вставки, так и в командном режиме. - claytron
Спасибо за разъяснения. В моем случае я просто bindkey '^R' history-incremental-pattern-search-backward, и он работает. Я также использую значение по умолчанию / команда в виртуальной модели vi в zsh. В этом случае я могу выполнить поиск в истории команд, и как только он найдет команду, он просто предоставит это в командной строке. Затем, если необходимо, я могу изменить последнюю команду. - alpha_989
Если я использую '^R' history-incremental-pattern-search-backward, с другой стороны, он просто приземлится на последнюю команду, соответствующую строке поиска. Тем не менее, я не нашел способ реально редактировать команду. После нахождения подходящей команды, соответствующей строке поиска, посредством инкрементного поиска patter, существуют ли какие-либо конкретные комбинации клавиш, которые я могу нажать, чтобы редактировать команду? - alpha_989


Согласно zshzle справочная страница для zsh 4.3.10, по умолчанию ключ не привязан. Вам нужно добавить привязки к isearch карта, и доступно только несколько виджетов. Например, вы можете:

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

6
2017-10-10 09:36



bindkey -l не показывает isearch отображение - claytron
@claytron: должна быть проблема с версией: isearch является новым в 4.3.10, тогда как history-incremental-pattern-search-backward появился в 4.3.7 (если я правильно прочитал журнал изменений). - Gilles
Я использую 4.3.10, не знаю, почему его там нет. Однако использование привязок режима вставки работало для меня. - claytron