簡體   English   中英

如何讓 fzf.vim 忽略 node_modules 和 .git 文件夾?

[英]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'

! 是排除
我從我的搜索基本路徑(當前目錄)中排除了designdist文件夾
並排除 il 文件pnpm-lock.yaml anywhare
並排除.gitnode_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM