You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Notepad++中删除不含指定字符串的行并优化宏替换功能?

实现动态关键词的类Grep过滤(Notepad++宏增强)

当然可以实现!你的现有宏是固定搜索IM1 001,要改成动态使用选中文本或通配符,有两种实用方案,下面一步步来:


方案1:用选中文本作为动态搜索关键词(推荐)

Notepad++原生宏没法直接获取选中文本,所以得借助PythonScript插件来实现这个动态功能,步骤很简单:

  1. 安装PythonScript插件

    • 打开Notepad++,点击「Plugins > Plugins Admin」,搜索PythonScript并安装,之后重启Notepad++。
  2. 创建自定义脚本

    • 点击「Plugins > PythonScript > New Script」,命名为DynamicGrepFilter.py,粘贴以下代码:
      editor.rereplace(r'^(?s)(?!.*' + editor.getSelText() + r').*$\r?\n?', '')
      
      这段代码的作用是直接删除所有不包含当前选中文本的行,完美替代你原来「标记-删除未标记行」的手动流程。
  3. 绑定快捷键

    • 点击「Plugins > PythonScript > Configuration」,在「Scripts」列表里找到DynamicGrepFilter.py,点击「Add」把它移到「Menu Items」里。
    • 打开「Settings > Shortcut Mapper > Plugin Commands」,找到DynamicGrepFilter,设置你顺手的快捷键(比如Ctrl+Shift+G)。
  4. 使用方法

    • 选中你要搜索的任意关键词(比如IM1 001或其他字符串),按下设置的快捷键,瞬间就会保留所有包含该关键词的行。

方案2:修改宏以支持通配符/正则表达式

如果你只想用固定的通配符模式(比如匹配所有IM1开头的行),可以直接修改shortcuts.xml里的宏,调整搜索模式和关键词:

  1. 先关闭Notepad++,找到shortcuts.xml(一般在%APPDATA%\Notepad++文件夹里)。
  2. 修改你的grep01宏,调整搜索模式和关键词:
    <Macro name="grep01" Ctrl="no" Alt="no" Shift="no" Key="0">
      <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
      <!-- 开启通配符模式:wParam=1表示启用通配符 -->
      <Action type="3" message="1625" wParam="1" lParam="0" sParam="" />
      <!-- 通配符关键词,比如匹配IM1开头的任意行 -->
      <Action type="3" message="1601" wParam="0" lParam="0" sParam="IM1 *" />
      <Action type="3" message="1702" wParam="0" lParam="784" sParam="" />
      <Action type="3" message="1701" wParam="0" lParam="1615" sParam="" />
      <Action type="2" message="0" wParam="43051" lParam="0" sParam="" />
    </Macro>
    
    • 要是想用正则表达式,把message="1625"改成message="1627"(开启正则模式),然后sParam写正则规则,比如sParam="IM1 \d{3}"就能匹配IM1后跟三位数字的行。
  3. 保存shortcuts.xml,重启Notepad++,按下宏的快捷键就能用通配符/正则过滤了。

补充说明

  • 方案1的Python脚本灵活性拉满,支持任意选中文本作为关键词,完全替代手动操作;
  • 方案2适合固定模式的批量过滤,不用每次选中文本。

内容的提问来源于stack exchange,提问作者Sammy Bresel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:53:14