如何让 Telescope 忽略 node_modules 中的文件?

How to make Telescope ignore files inside node_modules?

我是 VIM / NEOVIM 世界的新人,所以我可能正在做某事否则是错误的,但是从文档中可以看出 Telescope 将忽略 .gitignore 文件中注册的所有文件,该文件肯定存在,但它仍在 node_modules

中搜索

所以这就是我所做的:

  1. cd进入我的项目文件夹
  2. 命中nvim
  3. 命中<leader>ff
  4. Telescope 打开,我开始输入,但搜索速度非常慢,因为它们包括 node_modules

这些是我用来设置的插件telescope

" Telescope
Plug 'nvim:solua/popup.nvim'
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim'

然后我直接从文档重新映射:

" Find files using Telescope command-line sugar.
nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr>

所有这些都是 运行 在带有 Ubuntu 的 WSL 终端中。我错过了什么?

您需要对 rg 进行一些自定义:

--ignore-file <PATH>...                  
    Specifies a path to one or more .gitignore format rules files. These patterns
    are applied after the patterns found in .gitignore and .ignore are applied
    and are matched relative to the current working directory. Multiple additional
    ignore files can be specified by using the --ignore-file flag several times.
    When specifying multiple ignore files, earlier files have lower precedence
    than later files.

添加到 nvim 的配置:

require('telescope').setup{
  defaults = {
    vimgrep_arguments = {
      'rg',
      '--color=never',
      '--no-heading',
      '--with-filename',
      '--line-number',
      '--column',
      '--smart-case',
      '--ignore-file',
      '.gitignore'
    },

只需添加

require('telescope').setup{ defaults = { file_ignore_patterns = { "node_modules" }} }

给你的init.lua