文件管理工具fzf
fzf基础功能
fzf结合其他工具
fzf结合apt实现包管理
把apt-cache的结果格式化为目录的格式,让fzf浏览:
apt-cache search '' | sort | cut --delimiter ' ' --fields 1 | fzf --multi --cycle --reverse \ --preview-window=right:70%:wrap \ --preview 'apt-cache show {1}' | xargs -r sudo apt install -y
就可以像浏览文件结构一样浏览包结构。还可以直接按回车就直接安装:
> ╭─────────────────────────────────────────────────── │ 84292/84292 (0) │ Package: 2vcard 1/27 │ 0ad-data-common │ Architecture: all │ 0ad-data │ Version: 0.6-4 │ 0ad │ Multi-Arch: foreign │ 0install-core │ Priority: optional ┌───┐ │ 0install │ Section: universe/ut│ 0 │ │ 0xffff │ Origin: Ubuntu └───┘ │ 1oom │ Maintainer: Ubuntu Developers <ubuntu-devel-di │ 2048-qt │ Original-Maintainer: Debian QA Group <packages │ 2048 │ Bugs: https://bugs.launchpad.net/ubuntu/+fileb │ 2ping │ Installed-Size: 51 │ ─────────────────────────────────────────────────────┘
fzf结合ps实现进程管理
(date; ps -ef) | fzf --bind='ctrl-r:reload(date; ps -ef)' \ --header=$'Press CTRL-R to reload\n\n' --header-lines=2 \ --preview='echo {}' --preview-window=down,3,wrap \ --layout=reverse --height=80% | awk '{print $2}' | xargs kill -9
直接搜索并结束要关掉的进程:
> 258/258 Press CTRL-R to reload Sun May 5 09:58:32 PM CST 2024 UID PID PPID C STIME TTY TIME CMD > root 1 0 0 20:19 ? 00:00:01 /sbin/init splash root 2 0 0 20:19 ? 00:00:00 [kthreadd] root 3 2 0 20:19 ? 00:00:00 [rcu_gp] root 4 2 0 20:19 ? 00:00:00 [rcu_par_gp] root 5 2 0 20:19 ? 00:00:00 [slub_flushwq] root 6 2 0 20:19 ? 00:00:00 [netns] root 8 2 0 20:19 ? 00:00:00 [kworker/0:0H-events_highpri] root 10 2 0 20:19 ? 00:00:00 [mm_percpu_wq] ┌────────────────────────────────────────────────────────────────────┐ │ root 1 0 0 20:19 ? 00:00:01 /sbin/init splash │ │ │ │ │ └────────────────────────────────────────────────────────────────────┘
fzf结合Ripgrep进行搜索
创建一个搜索脚本rfv
:
#!/usr/bin/env bash # 1. Search for text in files using Ripgrep # 2. Interactively narrow down the list using fzf # 3. Open the file in Vim rg --color=always --line-number --no-heading --smart-case "${*:-}" | fzf --ansi \ --color "hl:-1:underline,hl+:-1:underline:reverse" \ --delimiter : \ --preview 'bat --color=always {1} --highlight-line {2}' \ --preview-window 'up,60%,border-bottom,+{2}+3/3,~3' \ --bind 'enter:become(vim {1} +{2})'
加上可执行权限:
chmod +x rfv
可以用这个脚本查找字符串algo
:
./rfv algo