【问题标题】:Notepad++ find in files filter EXCLUDENotepad++ 在文件过滤器中查找 EXCLUDE
【发布时间】:2010-11-16 20:53:25
【问题描述】:

我正在寻找一种方法来让 n++ 在文件对话框中查找以排除某些文件...

到目前为止,我发现的唯一参考资料是 http://sourceforge.net/project/shownotes.php?release_id=536795&group_id=189927,但不幸的是,它不起作用。

我认为,我正在使用 *[^*.dll] 来搜索除 dll 文件之外的所有内容。

我该如何解决这个问题?

谢谢

【问题讨论】:

标签: find notepad++


【解决方案1】:

请注意,自 2019 年 12 月 5 日起,Notepad++ 7.8.2 现在支持排除过滤器。

例如,要排除 exe、zip 和 jar 文件,您的“在文件中查找”过滤器将如下所示;

*.* !*.exe !*.zip !*.jar

相关代码更改here

【讨论】:

  • 其实* !*.exe !*.zip !*.jar 也可以。它是不同的,因为它也会包含没有扩展名的文件。
【解决方案2】:

这不是一个好的答案,但是,我发现有效的是这个

*.sql ; *.asp ; *.html ; *.as ; *.mxml

它绝对不是一个“排除”列表,但是,通过包含我需要查看的所有类型,我得到了相同的结果。就我而言,我只有少数几种我经常寻找的类型。如果你的集合更宽,这将变得更没用。

【讨论】:

  • 如果他们添加一个! not 运算符就好了,这样你就可以这样做! *.jpg
  • 将接受的答案更改为 @n00b s。很高兴终于解决了这个问题!
【解决方案3】:

我从另一个论坛获得了帮助我解决此问题的提示。将要排除的文件夹标记为“隐藏”。默认情况下,N++ 中的“在文件中查找”不包括隐藏目录。完成后,您可以恢复隐藏目录。

有点乏味,但总比没有好。

【讨论】:

  • 此博客shellcreeper.com/how-to-exclude-folders-in-notepad-search 提供了通过将文件夹标记为隐藏来排除文件夹的分步解决方案。
  • 只要您将 Windows 资源管理器设置为显示隐藏目录,将它们隐藏起来会不会有什么坏处?将我的 .hg 文件夹中的所有内容标记为隐藏需要几分钟。我的搜索在我完成后第一次崩溃,但之后运行良好。
  • 在我的情况下,将我的 node_modules 文件夹标记为“隐藏”需要大约 3 分钟的文件资源管理器。有什么办法可以加快速度?
  • @Noumenon 只是将顶级目录更改为隐藏状态。 Notepad++ 将跳过隐藏文件夹中的子目录。
【解决方案4】:

也许真正的答案是不要为此使用 NP++。你看过http://www.wingrep.com/features.htm还是

编辑:这些天我使用https://tools.stefankueng.com/grepWin.html

【讨论】:

  • 这应该是正确的答案。对我来说 - 找到这个页面,阅读答案,阅读这个答案中的 features.htm,从 sourceforge 下载软件,安装它,然后搜索我的东西 --- 在我开始之前的 Notepad++ 搜索之前完成到 sourceforge 完成.
  • 不同意。关键是我已经在使用 Npp 来完成项目中的其他任务。我不想离开这个工具去做一个可以通过稍微更好的过滤引擎变得更容易的工作。不过,我承认其他人可能没有相同的限制:D
  • 用grepwin,在文本匹配中,输入-*.dll排除dll文件
【解决方案5】:

可能有更优雅的方法,但您可以使用 PowerShell 获取文件夹中的所有扩展,然后删除不需要的扩展。此示例获取“C:\Program Files\Internet Explorer”文件夹中的所有扩展名。

注意:不要忘记将 (Get-ChildItem ... -join ";*" 用括号括起来。

"*" + ((Get-ChildItem -File -recurse "C:\Users\SomeUser\Documents\Visual Studio 2013\Projects\WindowsService1" | Where {$_.Extension -ne ""}| Select-Object Extension -unique | Sort-Object Extension | Get-Unique -asString  | Select -ExpandProperty Extension | % { $_.ToLower() } | Get-Unique) -join ";*")

这会返回:

*.cache;*.config;*.cs;*.csproj;*.exe;*.jmconfig;*.manifest;*.settings;*.sln;*.txt

然后删除你不想要的。

【讨论】:

  • *.bin;*.bmp;*.buildinfo;*.bz2;*.cnf;*.conf;*.conv;*.csm;*.css;*.csv;*.da;*.dat;*.de;*.dic;*.dist;*.doctree;*.dtd;*.en;*.ent;*.eot;*.err;*.es;*.euc-kr;*.exp;*.file;*.fr;*.frm;*.gif;*.gitignore;*.gz;*.h;*.hhvm;*.htaccess;*.html;*.icc;*.ico;*.inc;*.ini;*.ini-development;*.ini-production;*.inv;*.jpg;*.js;*.jshintrc;*.json;*.koi8-;*.lang;*.lib;*.log;*.map;*.md;*.mediawiki;*.mo;*.myd;*.myi;*.new;*.nocoverage;*.ods;*.opt;*.pdb;*.phar;*.php;*.phtml;*.pickle;*.pid;*.pl;*.png;*.properties;*.pt-br;*.py;*.rst;*.sh;*.so;*.sql;*.sty;*.svg;*.sys;*.tpl;*.trg;*.trn;*.ttf;*.txt;*.types;*.utf8;*.var;*.woff;...
  • /\以上内容全面,因本站cmets字数限制,不得不删减。太糟糕了,记事本++“过滤器”的字符限制甚至更低,正好是 255。所以,“否定”过滤器确实不错。
  • 我不得不在 W2K3 服务器上搜索文件,所以没有 powershell,但我在 Windows 10 PC 上使用 W2K3 服务器的共享文件夹运行了这个脚本,它运行良好。投赞成票。
【解决方案6】:

请注意使用 Notepad++ v7.8.7 测试

n00b 已经回答了

这行得通:

*.* !*.obj

但这不起作用!:*.*;!*.obj => 不搜索文件!

另一方面,这确实有效 *.*; !*.obj

【讨论】:

    【解决方案7】:

    我刚遇到同样的问题,找到了一个 3 步解决方案:

    1. 在所有文件中搜索
    2. 将结果作为文本复制到新的 Notepad++ 选项卡中
    3. 使用正则表达式删除您不感兴趣的所有条目

    这是我的正则表达式(开头的两个空格是相关的):

    M:\\.+?\\([^\\]+\.(csproj|dll)|packages\.config|Build\.props) \(\d+ hits?\)([\r\n]+ \t.+)+[\r\n]+

    我在 M: 上的所有结果,您必须调整开始以适应您的结果。如果您使用空字符串运行“全部替换”,则会删除以“csproj”或“dll”结尾的文件以及“packages.config”和“Build.props”文件中的所有结果。

    【讨论】:

    • 这种方法有一些缺点。一是不跳过文件会增加搜索时间。另一个是,截至 2021 年 3 月,一些二进制文件可能会导致 Notepad++ 搜索崩溃。
    【解决方案8】:

    https://notepad-plus-plus.org/community/topic/10653/exclude-directories-from-the-search/5 的解决方案是将您要排除的文件夹临时设置为“隐藏”文件夹(仅隐藏顶​​级子目录就足够了),然后这会阻止 Notepad++ 下降到该子目录。

    刚刚为我工作!

    【讨论】:

      猜你喜欢
      • 2011-01-12
      • 1970-01-01
      • 2018-08-06
      • 2019-08-29
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多