[英]How to get fzf.vim ignore node_modules and .git folders?
我在 vim 中設置了 fzf,幾乎沒有任何定制:
" fzf and ripgrep settings
set rtp+=/usr/local/opt/fzf
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-i': 'split',
\ 'ctrl-s': 'vsplit'
\ }
在我的.bash_profile
中,我將環境變量FZF_DEFAULT_COMMAND
設置為隱藏,但忽略node_modules
和.git
:
export FZF_DEFAULT_COMMAND='rg --files --follow --no-ignore-vcs --hidden -g "!{node_modules/*,.git/*}"'
但是,當我在 vim 中使用:Files
function 時,它仍然會在我想忽略的文件夾中搜索。
您是否嘗試過:GFiles
命令?
它是最好的 FZF 命令之一,它排除了 .gitignore 中的任何內容。
我個人喜歡將其用作默認值。
:help fzf-vim-commands
您可以使用自定義 FZF_DEFAULT_COMMAND 忽略 node_modules(以及您想要忽略的任何其他文件夾)。 我使用這樣的東西:
(將它放在你的 vimrc 中)
let $FZF_DEFAULT_COMMAND='find. \( -name node_modules -o -name.git \) -prune -o -print'
傻我。 我忘了source ~/.bash_profile
我想我們說的是“junegunn/fzf”。
我在使 fzf 和 rg 滿足我的需要方面取得了成功。 (我是開發者)
這是我的 vim 8.2 配置:
command! -bang -nargs=* Rg
\ call fzf#vim#grep(
\ "rg -g '!design/' -g '!dist/' -g '!pnpm-lock.yaml' -g '!.git' -g '!node_modules' --column --line-number --no-heading --color=always --smart-case ".shellescape(<q-args>), 1,
\ fzf#vim#with_preview({'options': '--exact --delimiter : --nth 4..'}), <bang>0)
在最后一行的這個配置中--exact
刪除所有模糊搜索:我如何更喜歡 exatc metch 的開發人員
不包括我不喜歡的文件夾和文件我使用-g
選項:
rg -g '.design/' -g '.dist/' -g '!pnpm-lock.yaml' -g '!.git' -g '!node_modules'
的!
是排除
我從我的搜索基本路徑(當前目錄)中排除了design 、 dist文件夾
並排除 il 文件pnpm-lock.yaml anywhare
並排除.git和node_modules anywhare(文件或文件夾)
希望可以幫助,問候,萊昂納多
您可以使用fzf.vim
如果已定義,它允許您使用默認的 $FZF_DEFAULT_COMMAND。
如果你使用 vim-plug 進行插件管理,安裝 fzf.vim:
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
如果它導致:
command failed: rg --files ...
這是因為它是由rg
錯誤引起的,或者你沒有安裝它,你只需要執行
sudo apt install ripgrep -y
如果您使用腳本進行安裝,您可以使用:
which rg >/dev/null 2>&1 ||
apt install ripgrep -y
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.