notepad++中删光标到行尾内容用ctrl+shift+delete,清空光标右侧至行尾(不含换行符),支持多编码及列编辑批量操作,不支持撤销,且无法用正则精确替代。

Notepad++里删光标到行尾内容用什么快捷键
直接按 Ctrl+Shift+Delete,光标右侧(含当前字符)到行尾全部清空,不删换行符,保留原行结构。
这个操作和 Ctrl+Delete(删到词尾)、Ctrl+BackSpace(删到词首)不同,它严格以「行」为界,不是按词或字符单位。常见误操作是只按 Delete,结果只删一个字符;或误用 Ctrl+Shift+K,那会把整行(含换行符)都干掉,导致上下文错位。
- 光标在行中任意位置都生效,哪怕停在中文中间、符号前、空格后
- 若光标已在行尾(换行符前),按一次就清掉该位置右侧的零长度内容,实际无变化
- 不支持撤销(
Ctrl+Z无效),删完即生效 - 对 UTF-8、GBK、ANSI 编码均正常,不因宽字符(如中文)多删或少删
为什么不用正则替换 ^.*$ 或 .*$
有人想用查找替换实现“删光标后所有”,于是搜 ^.*$ 或 .*$ 全部替为空——这完全不可控:它会匹配整行(含换行符),替换后该行彻底消失,等效于 Ctrl+Shift+K,但更危险,因为无法预览命中范围,且不能限定从光标起始。
Notepad++ 的查找替换没有「从光标位置开始匹配」机制,$ 总是锚定物理行尾,跟光标无关。想靠正则模拟「光标到行尾」,必须手动选中再替换,反而比快捷键慢。
-
^.*$匹配整行+换行符,替换后该行被抹除 -
.*$在「扩展」模式下可能只匹配到换行符前,行为不稳定 - 即使加
\K(Notepad++ 不支持)或环视断言,也无法动态绑定光标位置
列编辑模式下批量删多行光标到行尾
要同时处理多行(比如 10 行代码,每行都在第 20 列停住),得用列编辑 + 快捷键组合:
先按 Alt 键不放,用鼠标从第一行光标处垂直拖到最后一行对应列,松手后形成竖向选区;再按 Ctrl+Shift+Delete —— Notepad++ 会对每一行选区起始位置到该行行尾分别执行删除。
- 关键点:选区必须落在每行有效字符范围内,不能只覆盖空白或悬在行外
- 若某行比其他行短,该行只删到自己行尾,不会报错或跳过
- 松开
Alt后再按快捷键会失效,必须保持列选状态触发 - 比逐行按
Ctrl+Shift+Delete效率高,尤其处理配置文件中对齐的字段值
删完发现“好像还有空格”?大概率是不可见字符
按 Ctrl+Shift+Delete 后,看起来删干净了,但粘贴到终端或提交 Git 时仍报「trailing whitespace」,往往是因为残留了 \u200B(零宽空格)、\u00A0(不间断空格)或 BOM 等 Notepad++ 默认不识别的 Unicode 空白。
这时快捷键已无能为力,得切到正则替换:Ctrl+H → 勾选「正则表达式」→ 搜 [\u2000-\u200B\u2028\u2029\u202F\u2060\uFEFF]+$ → 替换为空。但注意:这个正则必须配合 $ 锚定,否则会误删行中合法空格。
- 执行前务必先
Ctrl+A全选,避免漏掉末尾无换行符的文件最后一行 - 该正则不匹配制表符
\t和 ASCII 空格,所以建议先用菜单「编辑 → 行操作 → 删除尾部空白」清理常规空白,再跑这个补漏 - 真正容易被忽略的是:某些编码(如带 BOM 的 UTF-8)在文件头插入了不可见字节,它不属于「行尾」,但会影响后续工具解析











