【问题标题】:Vim: Ignore Special Path in SearchVim:忽略搜索中的特殊路径
【发布时间】:2011-05-16 19:43:53
【问题描述】:


在我的 .vimrc 文件中,有两行非常有用:

set path=~/nbapp/**
set backupdir=~/nbapp/temp

第一行允许我在我的项目目录和子目录中进行搜索。第二行让 vim 在一个特殊的临时文件夹中创建备份文件,而不是通过添加数十个名称完全相同的备份文件来打扰我,除了末尾的“~”。但是,由于临时文件仍在“nbapp”文件夹中(我想将它们保留在那里,因为它们与项目相关),这意味着当我进行搜索时它们也会被搜索,这有时会打扰我,因为我一直在查看搜索结果,但发现它们实际上在临时文件夹中。

是否有任何可能的方法从搜索中排除路径(即 vimgrep)?我想排除“临时”文件夹。

问候,
拉菲德

【问题讨论】:

    标签: search vim findinfiles


    【解决方案1】:

    使用“wildignore”选项:

    :set wildignore+=**/temp/**

    或者如果您想更具体:

    :set wildignore+=~/nbapp/temp/**

    这应该在 :find 结果中排除 nbapp/temp 目录中的所有文件。

    【讨论】:

    • 我正在寻找这个,因为忽略了 :find 搜索中的构建文件夹。谢谢!
    • 在 vim 7.4 中为我工作
    【解决方案2】:

    我使用 grep 命令代替 vimgrep

    :help grep
    

    我使用设置

    set grepprg=grep\ -nIh\ --exclude=tags\ --exclude=cscope.out
    

    当我想搜索文件但不包括标记文件和 cscope 文件时。 您可以修改上述内容以不搜索任何以 ~ 结尾的文件。 我认为您不能使用 grep 排除该文件夹(或者您可以尝试 --exclude=~/nbapp/temp/* 它可能有效,我尚未测试过)。

    如果这不起作用,我建议对 grepprg 使用 ack 而不是 grep。 ack 作为选项 ignore-dir=name ,您可以在其中显式忽略文件夹。

    【讨论】:

    • 最新版本的 grep 也有 --ignore-dir,这可能正是您要找的。​​span>
    • 为了不破坏快速修复窗口更好的是set grepprg=grep\ -n\ --exclude=tags\ --exclude=cscope.out\ $*\ /dev/null
    【解决方案3】:

    :findgf 中排除一些目录(例如node_modules) 你可以设置:

    :set path=**
    :set wildignore+=*/node_modules/*
    

    【讨论】:

    • 显然你从未听过Jimmy Soul
    • @WayneWerner 我没有收到你的评论。就在 2 年前 :)
    • 我现在很困惑我当时的意思到底是什么:D
    【解决方案4】:

    例如在 Ubuntu 中

    sudo apt-get install ack-grep
    
    sudo ln -s /usr/bin/ack-grep /usr/bin/ack
    

    然后安装http://www.vim.org/scripts/script.php?script_id=2572

    现在将下一行添加到您的 .vimrc

    noremap <C-f> :copen<CR>:Ack --ignore-dir #first_ignore_dir# --ignore-dir #second_ignore_dir# -ai 
    
    • Ctr+F 打开搜索框,玩得开心

    【讨论】:

      【解决方案5】:
      set path-=~/nbapp/temp
      

      是删除路径条目的首选方法,因为它可以保护您免受可能修改 'path' 值的 vim 升级。

      【讨论】:

      • 这似乎不起作用!它仍然向我显示备份文件。
      猜你喜欢
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 2023-02-15
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      相关资源
      最近更新 更多