fzf是非常強大的Vim套件,非常非常建議裝,其具備以下功能:
- (模糊)輸入關鍵字後快速找到檔案開啟,類似功能的插件有
ctrlp、Nerdtree - 全域搜尋資料夾的關鍵字,類似
grep -rni或VSCode中的ctrl+shift+F - 快速尋找某些關鍵字出現在哪行,也可搭配
Ctags快速查找symbols - 可結合git commits, snippets等非常多的功能
安裝
安裝很迅速,只要在init.vim中插入下面的代碼(以Vim-plug為例),並用:PlugInstall安裝即可
1 | Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } |
基本配置
暫時先參考fzf.vim中的基本配置即可,將下面代碼放入init.vim中
1 | " fzf settings |
讓fzf搜尋時配合.gitignore
如果沒特別設置filter,搜尋檔案時可能各種附檔名都會被包含進來。
參考fzf文檔,必須先安裝fd指令 (fd可想成是優化的find指令)。安裝完後在terminal測試是否已有fd指令,接著在~/.fzf.bash或~/.fzf.zsh最下面加入:
1 | export FZF_DEFAULT_COMMAND='fd --type f' |
接著在~/.zshrc最下面加入(bash同理):
1 | [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh |
完成後重新source ~/.zshrc再使用fzf時應該會代入.gitignore的filter了,其他設定可再參考文檔。
快捷鍵配置
根據此表中的敘述,將自己經常用到的命令設置快捷鍵
1 | nnoremap <leader>fl :Lines |
例如我輸入,ff就能快速開啟檔案搜尋視窗、輸入,fa後可以快速開啟全域搜尋的視窗。:Files後面可以接路徑,:Ag後面也可以直接接要搜尋的關鍵字,所以有些命令我有加<cr>而有些沒加。
以下為使用:Files準備搜尋並開啟檔案的情形,也可發現模糊搜尋的用處
附註
- 如要使用fzf中的全域搜尋功能,需先安裝
silversearcher-ag套件