7

Я нашел утилиту под названием fzf https://github.com/junegunn/fzf, которая является нечетким искателем для вашей оболочки.

Два вопроса:

1) После того, как я запустил fzf и запустил файл, я нажимаю Enter и затем файл, который я нашел, выводится в Терминале. Какую клавишу нажать вместо Enter , чтобы скопировать путь к файлу в мой каталог?

2) В идеале я хотел бы иметь возможность сделать что-то вроде этого:cat <pattern><hotkey> где я набираю часть имени файла и затем нажимаю горячую клавишу, чтобы начать поиск по этому шаблону в fzf. Есть ли способ сделать это?

2 ответа2

7

Я предлагаю вам прочитать страницу README. Вам необходим базовый уровень понимания сценариев оболочки, чтобы полностью использовать fzf.

fzf - это фильтр Unix, такой же, как grep или sed, и все, что он делает, это печатает выбранные элементы. Что делать с выходом, полностью зависит от вас.


1) После того, как я запустил fzf и запустил файл, я нажимаю Enter и затем файл, который я нашел, выводится в Терминале. Какую клавишу нажать вместо Enter, чтобы скопировать путь к файлу в мой каталог?

Вы можете использовать команду pbcopy для сохранения результата в буфере обмена следующим образом:

fzf | pbcopy

Более обычный способ использования fzf - использовать его с подстановкой команд:

cat $(fzf)

Или использовать привязку CTRL-T которая вставляет имена выбранных файлов в командную строку:

cat <CTRL-T>

2) В идеале я хотел бы иметь возможность сделать что-то вроде этого: cat, где я набираю часть имени файла, а затем нажимаю горячую клавишу, чтобы начать поиск fzf по этому шаблону. Есть ли способ сделать это?

fzf поставляется с нечетким дополнением для bash. Смотрите здесь для более подробной информации. Чтобы вызвать автозаполнение, добавьте две звездочки к шаблону и нажмите клавишу табуляции следующим образом:

cat pat**<Tab>

Если вы не используете bash, вы можете использовать комбинацию клавиш CTRL-T, упомянутую выше.

Смотрите: https://github.com/junegunn/fzf#key-bindings-for-command-line

1

Я попытался установить fzf через homebrew, и мои комбинации клавиш CTRL-T и pat ** также не работали. Я обнаружил, что fzf добавил некоторые команды в мой .bashrc, но мой .bashrc не вызывается.

[ -f ~/.fzf.bash ] && source ~/.fzf.bash

Поместить ту же самую исходную инструкцию из .bashrc в .bash_aliases мне удалось.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .