[О блоге] [наверх] [пред] [2020-06-12 10:59:59+03:00] [31ee58d93e7e049a4dea93901180b77addb69398]
Темы: [tip][zsh]

Попробовал zsh-history-substring-search и улучшил свой поиск

https://github.com/zsh-users/zsh-history-substring-search
https://git.stargrave.org/cgit.cgi/dotfiles.git/commit/?id=81ce22d8f258e168af0eec20c98d1f37fac2d0f8
Для того, чтобы в zsh появились все фичи FISH, создали три плагина:
zsh-history-substring-search, zsh-autosuggestions и zsh-syntax-highlighting.
Два последних я использую и яростно рекомендую: они абсолютно стоят того!
А вот substring-search у меня под вопросом большим.

Суть его работы тривиальна: мы что-то набрали в командной строке, а
дальше, нажимая вверх/вниз, ищем набранное в истории, при этом не
обязательно чтобы набранное было с начала строки -- оно может хоть
частью слова в середине где-то быть. Ещё там есть опция включающая fuzzy
поиск, когда вместо пробела, подставляется, грубо говоря, ".*". Но у
меня сразу же возникла тут дилемма: точно есть случаи когда мне точно
захочется fuzzy, но точно есть больше случаев когда его точно не
захочется. А штатного переключения (разных keybinding) там нет.

Но, стандартные средства в самом zsh в общем-то не хуже, насколько
помню. И вот сделал коммит в котором я Shift-Up-ом включаю
инкрементальный поиск по шаблону. Первая при этом проблема: я хочу чтобы
в нём автоматически было вбито то, что я уже написал в строке (когда
писал, то ещё не знал что захочу incremental search) -- проблему решил.
Вторая проблема: хочу чтобы точно также клавиши вверх/вниз искали по
истории -- решил. А ещё вбивать "*" вместо пробелов куда геморройнее и я
просто при подстановке уже набранного заменяю их на звёздочки. В итоге:
штатное поведение стрелочек не поменялось и мне оно нравится. А если
хочу fuzzy (*-pattern) incremental search, то просто жму Shift-Up и
дальше стрелочками ищу спокойно команды как и в zsh-history-substring-search.

Единственное что это не даст: красивую подсветку найденных элементов
слов. Но, уж эта то подсветка точно не горит. Мой код занимает с десяток
строчек и более гибок и покрывает всё что в zsh-history-substring-search.
Возможно я чего-то недопонял и недоувидел, но я честно за ним просидел
прилично времени.

    [оставить комментарий]