ctrl+shift+l是notepad++唯一支持指定重复次数的宏执行方式,输入数字可循环执行,填0则执行至文档末尾,且始终作用于最后一次录制/保存的宏。

Ctrl+Shift+L 是唯一能真正循环执行宏的入口
Notepad++ 的宏本身不支持 for 循环或条件判断,Ctrl+Shift+L 是原生唯一可指定重复次数的机制。它不是快捷键冲突问题,而是功能设计如此:用 Ctrl+Shift+P 只播一次,反复按等于手动点 N 次,极易因光标偏移导致错行。
执行 Ctrl+Shift+L 后弹出对话框,输入数字(如 50)即执行 50 次;填 0 表示“执行到文档末尾”,但前提是宏内逻辑本身支持叠加——比如每轮只处理当前行且光标自动下移。
该命令永远作用于“最后一次录制/保存的宏”,不管它是临时录的还是已命名保存的。刚保存了 add_prefix,又录了新操作,Ctrl+Shift+L 就会执行后者,不是前者。
光标起始位置决定全部循环成败
宏不分析文本,只复现按键轨迹。第一次光标在哪,后续每次循环都从那个相对位置开始执行——偏 1 列,整批就全错。
- 要处理每行开头的
ERROR,必须先用Ctrl+Home把光标停在第一行最左端,不能靠鼠标点击(DPI、缩放、多屏都会让坐标漂移) - 如果宏里含
↓或Ctrl+Shift+End,务必单次验证:光标在第 1 行开头运行一次,是否真能选中整行?空行、制表符混用、行长不一都可能导致选区截断 - 中文文档尤其要注意:
UTF-8录制的宏,在ANSI编码文件里回放,→可能只跳半个汉字,导致定位失效
保存后快捷键无效?两步缺一不可
保存宏只是把动作存进内存,不会自动绑定快捷键,也不会写入配置文件。重启后失效,90% 是漏掉了以下任一环节:
- 进
Settings → Shortcut Mapper → Macro,找到刚保存的宏名,双击右侧空白列,分配如Ctrl+Alt+1这类冷门组合(避开Ctrl+C等系统级热键) - 去
Settings → Preferences → Backup页面,勾选Enable macro at startup——不勾,重启后宏名直接从菜单和快捷键列表里消失
宏实际落盘路径是 %APPDATA%\Notepad++\shortcuts.xml,可直接编辑修复损坏项或批量管理。
遇到条件判断或动态逻辑时,宏已经到头了
宏是线性指令流,没有 if、没有变量、没有状态记忆。只要需求涉及以下任意一点,就必须换方案:
- 跳过空行、注释行(如只处理非
#开头的 Python 行) - 根据某列内容决定操作(如“若第 3 字符是
X,则删后 5 字符,否则插入Y”) - 跨文件操作、需读取外部数据、或要捕获替换结果做下一步判断
这时候该上 PythonScript 插件写脚本——宏能做的,它全能做到;宏做不到的,它也能做。真正卡住的不是操作步骤,而是对“宏本质是按键录像”这个事实的认知偏差:它不理解上下文,只忠实地按帧播放。











