fzf (когда не хватает интерактива)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

fzf

Сообщение Bizdelnick »

Спешу поделиться. Наткнулся на замечательный рецепт, из которого узнал о существовании программы fzf. А ведь аналогичным образом множество задач можно облегчить. Например, (при|раз)монтирование устройств с помощью udisks:

Код: Выделить всё

alias mnt='udisks --enumerate-device-files | fzf --preview "udisks --show-info {}" --print0 | xargs -0 -r udisks --mount'
alias umnt='udisks --enumerate-device-files | fzf --preview "udisks --show-info {}" --print0 | xargs -0 -r udisks --unmount'
Кто ещё какое применение придумает?
Последний раз редактировалось Bizdelnick 12.05.2021 18:23, всего редактировалось 1 раз.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Kopilov
Сообщения: 947
ОС: [K]Ubuntu, Debian

Re: fzf

Сообщение Kopilov »

Bizdelnick, спасибо!
Я пока не фантазировал, на общую критику — первое, что наяндексилось: https://habr.com/ru/company/skillfactory/blog/550470/
Спасибо сказали:
Аватара пользователя
Tema
Сообщения: 143

Re: fzf

Сообщение Tema »

я с этой тулой познакомился благодаря плагину вимовскому для поиска\открытию файлов в проекте, который собсно использует fzf под капотом, туда же ripgrep, который позволяет ультра быстро искать по содержимому файлов в директории. ну и если вдруг кто еще не использует zsh, стоит дать шанс.
смотрел когда-то классный видос минут на 30(не 30), где парень на фоне стены, на которой висела политическая(не политическая) карта мира воспроизводил разные трюки с fzf и zsh, но не могу найти сейчас увы
а собственно вот и оно https://www.youtube.com/watch?v=qgG5Jhi_Els
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: fzf

Сообщение Bizdelnick »

Kopilov писал:
12.05.2021 18:17
первое, что наяндексилось: https://habr.com/ru/company/skillfactory/blog/550470/
Пожалуй, там автор прав, что использует функции, а не алиасы. И про связку с git интересно.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 917
ОС: BSD/LINUX
Контактная информация:

Re: fzf

Сообщение bars »

Вкратце что это fzf?
И что оно даст полезного для админа *nix?
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: fzf

Сообщение Bizdelnick »

Bizdelnick писал:
12.05.2021 18:38
про связку с git интересно
Вот такой вот продвинутый blame, например, придумался:

Код: Выделить всё

function blame() {
    local commit=$( git blame --root --color-lines -M -s -w "$@" |
        fzf --ansi --layout=reverse --no-sort --bind=space:toggle-preview \
            --preview='echo {} | cut -d" " -f1 | xargs git show --color --stat' |
        cut -d' ' -f1 )

    if [ -n "$commit" ]; then
        git show $commit
    fi
}
(это работает в zsh, насчёт синтаксиса bash не уверен)
Последний раз редактировалось Bizdelnick 13.05.2021 02:08, всего редактировалось 1 раз.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: fzf

Сообщение Bizdelnick »

Или вот, навигация по истории:

Код: Выделить всё

function githist() {
    local commit=$( git log --color --oneline "$@" |
        fzf --ansi --layout=reverse --no-sort --bind=space:toggle-preview \
            --preview='echo {} | cut -d" "  -f1 | xargs git show --color --stat' |
        cut -d' ' -f1 )

    if [ -n "$commit" ]; then
        git show $commit
    fi
}
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить