Notepad++需用宏实现真正删除当前行:先关闭自动折行,光标移至行首,录制Shift+End→Del→Del,保存宏并绑定快捷键,启用启动加载;否则Ctrl+L仅剪切且行为不稳定。

Notepad++ 本身没有“删除当前行”的原生快捷键,Ctrl+L 实际是剪切整行,不是删除;要真正删除(不进剪贴板),必须用宏录制 + 键盘操作组合。
为什么不能直接用 Ctrl+L?
Ctrl+L 是 剪切当前行,会把内容放进剪贴板,且光标行为不稳定(比如空行时可能跳到下一行开头);而真实需求常是「彻底清除该行、不留空行、不干扰剪贴板」。宏能复现精确的键盘流:定位→选中→删除,绕过剪贴板依赖。
-
Ctrl+L在空行上可能失效或误删邻行 - 宏可控制是否保留换行符:用
Del还是Backspace决定删行还是删换行符 - 录制宏前若文件启用了自动折行(Word wrap),
End键只会跳到视觉行尾,不是逻辑行尾——必须先关掉它(View → Word wrap取消勾选)
正确录制流程:从光标在行首开始
这是最稳定起手式。不要用鼠标点击某行中间再录,避免因光标停在行中导致 Home/End 行为偏移。
- 把光标手动移到目标行**最开头**(推荐
Ctrl+Left或Home) - 点
Macro → Start Recording,紧盯右下角状态栏——直到出现持续显示的REC才开始按键(插件多时可能延迟 1–2 秒) - 依次按:
Shift+End(选中本行全部内容)、Del(删除选区)、Del(再按一次,删掉换行符,让下一行上移) - 点
Macro → Stop Recording(Ctrl+Shift+R按第二次不会停止,只能走菜单)
保存与绑定快捷键的关键两步
只点 Save Current Recorded Macro 不够——宏只存在内存里,重启就丢,快捷键也不生效。
- 先保存:点
Macro → Save Current Recorded Macro,填名称如Delete Line No Copy - 再绑定:进
Settings → Shortcut Mapper → Macros,在列表底部找到刚存的宏名,双击右侧空白列,设快捷键(如Ctrl+D),务必勾选Enable macro - 最后启用启动加载:进
Settings → Preferences → Backup,勾选Enable macro at startup——否则重启 Notepad++ 后宏直接消失
执行时最容易忽略的三个细节
宏不是智能脚本,它只回放你录下的每一个键,所以环境一致性决定成败。
- 每次执行前,光标必须落在**待删行的任意位置**(但推荐行首),否则
Shift+End会选错范围 - 文件编码必须和录制时一致:UTF-8 录的宏,在 ANSI 编码文件里执行,
→可能只跳半个汉字,导致选区偏移 - 批量删多行别连按快捷键——用
Ctrl+Shift+L弹出次数输入框,填数字(如50)更稳;填0表示“执行到文档末尾”,但前提是宏内不依赖全局状态(比如每轮都只处理当前行)
真正可靠的宏,90% 的问题出在录制时没盯住 REC 是否稳稳亮起,以及保存后漏掉 Enable macro at startup 这一步。这两处一错,后面全白忙。


















