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
套件