模糊搜索工具fzf的安裝和使用


模糊搜索工具fzf的安裝和使用

fzf簡介

fzf使用golang編寫,讓你通過輸入模糊的關鍵詞就可以定位文件或文件夾,當你的思維也習慣了模糊匹配后,在工作中可以大幅提高你的工作效率。

加入你記得文件名中包含yo,fi,na,那你只需要把所有文件送給fzf,然后在窗口輸入yo fi na就可以了,無論是you_file_name,還是you_name_file都可以匹配上。

安裝

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

升級

cd ~/.fzf && git pull && ./install

簡單使用

find * -type f | fzf > selected

fzf會從STDIN 讀入數據,然后將結果輸出到STDOUT,上面命令從find徳搜索結果中讀入,輸出到selected中。

fzf快捷鍵

在finder(輸出交換窗口)里,

  • Ctrl-J/Ctrl-K/Ctrl-N/Ctrlk-N可以用來將光標上下移動
  • Enter鍵用來選中條目, Ctrl-C/Ctrl-G/Esc用來退出
  • 在多選模式下(-m), TAB和Shift-TAB用來多選
  • Mouse: 上下滾動, 選中, 雙擊; Shift-click或shift-scoll用於多選模式

布局

#fzf默認全屏模式,你可以定制高度
vim $(fzf --height 40%)
#你可以通過$FZF_DEFAULT_OPTS來設定默認值
export FZF_DEFAULT_OPTS='--height 40% --reverse --border'

搜索語法

fzf默認會以“extened-search"模式啟動, 這種模式下你可以輸入多個以空格分隔的搜索關鍵詞, 如^music .mp3$, sbtrkt !fire.

Token Match Type Description
sbtrkt fuzzy-match 匹配sbtrkt
^music prefix-exact-match 以music開頭
.mp3$ suffix-exact-match 以.mp結尾
‘wild exact-match(quoted) J精確包含wild
!file inverse-exact-match 不包含fire
!.file$ inverse-suffix-match 不以.mp3結尾

如果你不想用fuzzy match, 可以用fzf -e做精確匹配,|可以做or匹配, 比如:

^core go$|rb$|py$

表示以core開頭,以go或rb或py結尾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM