Есть ли в Fish функциональность «обратного инкрементального поиска», аналогичная BRL CTRL + R?


36

Я действительно впечатлен функциональностью автозаполнения Fish . Однако в Bash есть одна особенность, которую я не могу найти в Fish. Когда вы нажимаете Ctrl+ Rв Bash и начинаете вводить термин, ваш поиск выполняется .bash_historyдля поиска совпадений в обратном порядке.

Есть ли подобная функциональность в Fish?


Особенность стрелок вверх / вниз рыбы заключается в том, что она гораздо менее мощна, чем обратный поиск bash. Это становится очевидным, когда вы можете вспомнить свой аргумент или опцию, но не из первой части вашей команды. Обратный поиск делает нечеткий встроенный поиск, fish просто проверяет одинаковое начало предложения.
Каспер HJ

6
@KasperHJ, я думаю, твой комментарий устарел. Я набрал staи нажал, и он нашел git stash list. Я только недавно начал использовать Fish, поэтому я не знаю, является ли это недавно добавленной функцией или чем-то, что было в Fish давно.
Элиас Замария

Ответы:


46

Я никогда не использовал fishсебя, но беглый поиск Google поднял эту страницу, которая утверждает, что

Мощный исторический механизм

Современные оболочки сохраняют предыдущие команды в истории команд. Вы можете просмотреть более ранние команды, используя стрелки вверх и вниз. Fish расширяет эту концепцию, интегрируя функции поиска по истории. Для поиска в истории просто введите строку поиска и нажмите стрелку вверх. Используя стрелки вверх и вниз, вы можете искать более старые и новые совпадения. История рыбы автоматически удаляет повторяющиеся совпадения, и соответствующая подстрока выделяется. Эти функции значительно ускоряют поиск и повторное использование предыдущих команд.

Это то, что вы ищете? Кажется, очень похоже на Bash.


7

fish не реализует пошаговый поиск по истории, хотя, похоже, время от времени появляется. Документация до версии 2.0 содержит раздел «Отсутствующие функции и ошибки» 1, в котором перечисляется пошаговый поиск по истории в списке «Возможных возможностей». Список рассылки пользователей рыбы включает это сообщение Акселя Лиленкрата от 21 августа 2006 года, в котором он говорит, что инкрементальный поиск был бы полезной функцией.

Если вы привыкли к инкрементальному поиску в стиле bash, то поиск по истории рыб требует некоторого привыкания. Сначала нужно ввести поисковый запрос, и вы переместитесь вверх и вниз по соответствующим записям с помощью стрелок вверх и вниз. Но я полагаю, вы привыкли к этому.




1

Гораздо лучше выполнить Ctrl + r обратный поиск с помощью плагина FZF и fzf fish , используя менеджер пакетов рыбы Triton , настроенный для использования Silver Searcher .

~ / .Config / рыба / config.fish:

triton jethrokuan/fzf
set -U FZF_COMPLETE 2
set -U FZF_FIND_FILE_COMMAND "ag -l --hidden --ignore .git"
set -U FZF_DEFAULT_OPTS "--height 40% --layout=reverse --border"

В Mac OS, чтобы установить предварительные требования:

brew install the_silver_searcher
brew install fzf

0

Использование стрелок вверх и вниз не является хорошей альтернативой Ctrl+R, потому что если искомая фраза действительно глубоко в истории, вам придется многократно нажимать клавиши вверх / вниз! Я просто используюhistory | grep -i [phrase]

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.