Найти в Дзене

fzf: поиск, который работает везде

Каждый день мы ищем: файлы в проекте, команды в истории, процессы для убийства. grep находит, но не выбирает.тает ведобавляет интерактивный поиск с нечетким сопоставлением туда, где его раньше не было. Утилита принимает список строк на вход, а на выходе отдаёт выбранную. ➤ Вариант 1 (Поиск по истории команд): привязка к Ctrl+R превращает поиск в истории из слепого перебора в интерактивную прогулку.# Добавить в .bashrc или .zshrc bind '"\C-r": "\C-e \C-u history | fzf --tac --no-sort | xargs -I {} echo {}"' fzf: поиск, который работает везде Каждый денбольше не нужно помнить, где лежит проект, запущенный месяц назад.# Переход в любую папку в проектах cd $(find ~/projects -type d 2>/dev/null | fzf) # Или с предпросмотром содержимого cd $(find ~/projects -type d | fzf --preview 'ls -la {}') fzf: поиск, который работает везде Каждый день нашел процесс глазами — убил, не выходя из поиска.# Выбрали процесс — отправили SIGTERM kill -15 $(ps aux | fzf | awk '{print $2}') # С предпросмо

fzf: поиск, который работает везде

Каждый день мы ищем: файлы в проекте, команды в истории, процессы для убийства. grep находит, но не выбирает.тает ведобавляет интерактивный поиск с нечетким сопоставлением туда, где его раньше не было.

Утилита принимает список строк на вход, а на выходе отдаёт выбранную.

➤ Вариант 1 (Поиск по истории команд): привязка к Ctrl+R превращает поиск в истории из слепого перебора в интерактивную прогулку.# Добавить в .bashrc или .zshrc

bind '"\C-r": "\C-e \C-u history | fzf --tac --no-sort | xargs -I {} echo {}"'

fzf: поиск, который работает везде

Каждый денбольше не нужно помнить, где лежит проект, запущенный месяц назад.# Переход в любую папку в проектах

cd $(find ~/projects -type d 2>/dev/null | fzf)

# Или с предпросмотром содержимого

cd $(find ~/projects -type d | fzf --preview 'ls -la {}')

fzf: поиск, который работает везде

Каждый день нашел процесс глазами — убил, не выходя из поиска.# Выбрали процесс — отправили SIGTERM

kill -15 $(ps aux | fzf | awk '{print $2}')

# С предпросмотром деталей процесса

kill -15 $(ps aux | fzf --preview 'echo {}' | awk '{print $2}')

fzf: поработает как пайплайн: слева что угодно (файлы, процессы, строки), справа — действие над выбранным. Один раз настроив, вы получаете интерактивность там, где раньше был только слепой grep.

Используете ли вы интерактивный поиск в терминале или предпочитаете старый добрый Ctrl+R?

P.S. В zsh можно настроить автодополнение команд через fzf — набираем kill **, нажимаем Tab, и выбираем процесс из списка.

👉🏻 Я в Telegram - https://dzen.ru/id/686102a27e39653c3429f77f

👉🏻 Я в VK - vk.com/helcode

👉🏻 Я на Boosty - boosty.to/helcode (тут выходит более подробный материал)