Notepad++ 怎么用?上手的全部门槛只有四个键:Ctrl+N 新建、Ctrl+O 打开、Ctrl+S 保存、Ctrl+F 查找。剩下所有功能都长在这四个动作之上。

真正区分“会用”和“用得熟”的,是两个东西:列编辑和多光标。它们能把十分钟的重复手改压成几秒钟,而且不需要装任何插件。

很多人装完 Notepad++,用了三年,其实只用了它很小一部分能力。这不是夸张:我见过同事一条一条手动给 100 行数据加前缀,加了二十分钟。而这个操作在 Notepad++ 里的正确耗时是三秒:按住 Alt 拖一下,打一行字,完事。

这事的根因不在人懒,在于没人告诉他有这一下。列编辑这个功能在绝大多数入门教程里只占一句话,甚至一个字都不提。它是 Notepad++ 少数几个比 VS Code 顺手的功能。

本文基于 Notepad++ 中文站 当前版本 8.9.5 撰写,界面以简体中文为准。这是一篇面向零基础的新手教程,可以照着从头做到尾;用了几年的老用户建议直接从第五章看起。

读完你应该能干三件事:

  • 给 100 行数据的行首批量加前缀
  • 在 200 行长短不一的行尾各加一个逗号,并且知道为什么这两种情况要用不同的功能
  • 用 Notepad++ 完整写完一篇带表格和代码块的 Markdown 文档

快速答案:Notepad++ 怎么上手最快?

记住四个键就能开始用,掌握列编辑和多光标就能比大多数人快。

  • 四个键就能上手:Ctrl+N 新建、Ctrl+O 打开、Ctrl+S 保存、Ctrl+F 查找。
  • 状态栏右下角同时显示编码格式、行尾符类型、文件语言、行列号。排查问题先看这里,它免费给你六条线索。
  • 列编辑(Alt+拖拽)是 Notepad++ 最被低估的功能,能在对齐的多行同一列同时插入内容;Alt+C 列编辑器还能插递增序号。
  • 多光标需要手动开启,而且开关位置随版本变过:v8.6.3 起在“设置 → 首选项 → 编辑 2 → 启用多编辑”,更早的版本在“编辑”页签。默认不开的话,Ctrl+点击 是完全没反应的。
  • 列编辑只处理对齐的矩形区域,多光标处理不规则位置,正则替换处理有条件的批量。第六章末尾的决策表按任务类型给出选型。
  • Notepad++ 默认不自动保存,需要自己在“设置 → 首选项 → 备份”里开。

一、打开之后先看哪儿:四个区域和状态栏

打开软件先看四个区域,其中状态栏是多数人从头到尾没看过的那个。

四个区域

从上到下依次是:

区域 作用 容易忽略的
菜单栏 所有命令的总入口 后面的章节里我会用“设置 → 首选项 → 新建”这种箭头格式指代菜单路径
工具栏 常用命令的图标 可以在“设置 → 首选项 → 工具栏”里增删图标
编辑区 打字的地方,支持多标签和分屏 左边是行号栏,书签和折叠标记都在这里
状态栏 最底下一行 多数人从头到尾没看过它,而它是排查问题的第一现场

状态栏会告诉你什么

状态栏从左到右依次显示:

行 42, 列 15   |   第 3 个文档, 共 8 个   |   插入   |   Windows (CR LF)   |   UTF-8   |   Java 源文件

逐项解释:

  • 行列号:光标当前位置。Ctrl+G 可以直接跳到指定行号。
  • 文档计数:当前是第几个标签、一共开了几个。
  • 插入 / 改写:按 Insert 键切换。不小心碰到 Insert 会变成“改写”模式,打字时后面的字被吃掉,这是新手最常遇到的“诡异故障”之一,看一眼状态栏就明白了。
  • 行尾符:Windows (CR LF) / Unix (LF) / Mac (CR)。这个文件最终要在 Linux 上跑吗?看这里。
  • 编码:UTF-8 / UTF-8-BOM / ANSI / GB2312 等。注意它显示的是 Notepad++ 的猜测结果,不是文件的真实编码,乱码排查时不能完全信它。
  • 文件类型:当前识别的语言,点它可以改。

后面排查乱码、换行符、脚本执行失败这类问题时,第一件事永远是看状态栏这六个字段。其中编码这一项为什么“猜得不准”、真正的编码要怎么确认,见 Notepad++ 编码识别与乱码排查。

多标签与分屏

  • 多个文件以标签形式排列,Ctrl+Tab 切换,Ctrl+W 关闭。
  • 分屏(双视图):把标签拖到编辑区边缘,或者右键标签选“移动到另一视图”。同一个文件可以右键选“克隆到另一视图”,实现上下两段对照编辑。
  • “视图 → 移到新窗口”可以把标签独立成一个新窗口。

二、新建、打开、保存:第一次保存就要选对编码

新建、打开、保存,看起来没什么可讲。但“第一次保存”这个动作里藏着一个坑:它决定了这个文件以后在别人电脑上是不是乱码。

四个基本键

快捷键 作用 说明
Ctrl+N 新建
Ctrl+O 打开 支持多选
Ctrl+S 保存当前文件
Ctrl+Alt+S 另存为 注意不是 Ctrl+Shift+S
Ctrl+Shift+S 全部保存 开了十几个标签时很省事
Ctrl+Shift+T 恢复刚关闭的标签 误关了标签不用慌

还有一个很有用的:Ctrl+Alt+S 的另存为对话框底部有编码下拉框,可以边存边改编码。

直接拖文件进来更快

把文件从资源管理器直接拖到 Notepad++ 窗口即可打开,多个文件一起拖也能开。这比走“文件 → 打开”对话框快得多。

如果想让 .txt、.log、.md 这类文件双击默认用 Notepad++ 打开,去“设置 → 首选项 → 文件关联”里勾选。Windows 更新后偶尔会把这个关联抢回给系统记事本,抢了就重新勾一次,属于正常现象。

还没装的话,先从 Notepad++ 官方下载页 拿一份安装包,建议直接选 64 位版本。后面第十一章会讲到,版本位数选错会导致插件装不上。

首次保存一定要选对编码

新文件的默认编码取决于“设置 → 首选项 → 新建”里的设置。如果这个设置是 ANSI(中文 Windows 下等于 GBK),你写的中文就存成了 GBK 字节。等这个文件传给同事、传到 Linux 服务器、或者用其他编辑器打开,就可能变成乱码。

建议第一次用就把默认编码设成 UTF-8(无 BOM),方法是“设置 → 首选项 → 新建 → 编码 → UTF-8”。这是一次性成本,能省掉后面无数次救火。

如果文件已经是乱码了,别慌,也别乱点。乱码的两步救回法 里有一套不会毁文件的两步救回法,顺序错了才会把文件彻底搞坏。

Notepad++ 默认不自动保存

这一条要单独说,因为它是“写了半天全没了”这类事故的主要来源。

Notepad++ 默认不会自动保存你正在编辑的内容。它有一个“会话快照”机制,能在意外关闭后恢复一部分,但这不是自动保存。

要开启的话:

  • “设置 → 首选项 → 备份”里可以开启备份与会话快照;
  • 想要真正的“每隔 N 分钟自动存盘”,通常要装 AutoSave 插件。

相关设置的完整说明在 配置备份与自动保存 里,包括备份目录在哪、哪些配置该备份。


三、选择、移动、撤销:批量操作的基本功

双击选词、三击选行、Ctrl+箭头 按单词跳。选择文本的速度,决定了后面所有批量操作的效率。

选择

操作 效果
双击 选中一个词
三击 选中整行
Ctrl+A 全选
Ctrl+左/右箭头 按单词跳过(不是按字母)
Shift+Home/End 选到行首 / 行尾
Shift+上下箭头 逐行扩展选择

Ctrl+箭头 按单词跳这一条,用习惯了之后就不会再按住左箭头一格格挪了。

移动

操作 效果
Home / End 行首 / 行尾
Ctrl+Home / Ctrl+End 文件开头 / 文件结尾
Ctrl+上下箭头 滚动一行(光标不动,视图滚动)
Alt+左箭头 / Alt+右箭头 在导航历史里后退 / 前进

Alt+左右箭头 是很多人不知道的一组:你跳到文件第 3000 行看完一段,按 Alt+左箭头 就回到原来的位置,不用再滚回去。它记录的是你停留过的光标位置历史。

撤销

Ctrl+Z 撤销,Ctrl+Y 重做。Notepad++ 支持多步撤销。

一个需要注意的点:撤销历史在文件关闭后就清空了。关掉标签再打开,Ctrl+Z 救不回来。这也是为什么做破坏性操作(尤其是批量替换)之前,另存一份 Ctrl+Alt+S 是值得的。


四、行操作:复制、删除、移动、合并的五个快捷键

整行整行地搬文本,是写代码和整理数据时最高频的动作。五个快捷键。

1. 复制当前行:Ctrl+D

光标放在任意位置按 Ctrl+D,当前行被复制一份插入到下一行。不用选中、不用复制粘贴。

给配置文件加一条相似的配置时,这比“选中 → 复制 → 回车 → 粘贴”快三倍。

2. 删除当前行:Ctrl+L / Ctrl+Shift+L

这一对特别容易记混,但 Scintilla 官方文档的命令表里写得很确定:

快捷键 命令 官方描述
Ctrl+L SCI_LINECUT 把整行(含行尾换行符)剪切到剪贴板
Ctrl+Shift+L SCI_LINEDELETE 删除整行(含行尾换行符),不影响剪贴板

所以:想删掉一行不留痕迹,用 Ctrl+Shift+L;想挪到别处去,用 Ctrl+L 剪切,再 Ctrl+V 粘贴到目标位置。

想确认自己机器上的实际绑定,去“设置 → 快捷键映射器 → 主菜单”页签里搜这两个键。

3. 整行上下移动

Ctrl+Shift+上/下箭头:把当前行(或选中的多行)整体上下移动,这是 Notepad++ 默认映射里最常用的一组。

调整代码顺序、调整列表项顺序时,这比剪切再粘贴干净得多,不会留下空行。

⚠️ 一条容易踩的坑:Alt+Shift+上/下箭头 不是移动行,它是矩形(列模式)选择扩展,第五章的列编辑正好用的就是它。而 Alt+上/下箭头 在官方手册里并没有被记录为移动行的快捷键,别把它和 VS Code 的习惯搞混。

4. 合并行与拆分行

  • Ctrl+J:把多行合并成一行(去掉换行,用空格连接)
  • Ctrl+I:按窗口宽度拆分当前行

Ctrl+J 在整理从 PDF 或网页复制来的、被强制断行的文本时特别好用:选中那几行,按一下,它们就接成完整的一句话了。

5. Tab / Shift+Tab 整块缩进

选中多行后:

  • Tab 整块右移一个缩进
  • Shift+Tab 整块左移

缩进宽度和“用 Tab 还是空格”在“设置 → 首选项 → 语言”里设置,Python 项目建议勾上“替换为空格”。

删除空行的两种做法

做法一(内置菜单,简单场景够用):“编辑 → 行操作 → 移除空行(含空白字符行)”。一键搞定,不用记任何正则。

做法二(正则,复杂场景才需要):搜索模式选“正则表达式”,查找 ^[ \t]*\r?\n,替换为空。

什么时候需要做法二?当你要处理的是“只删除连续空行中的一部分”、或者“只删除某一段里的空行”这类有条件的场景。内置菜单是一次性全清,正则可以配合选区和“在选定内容中替换”精确控制范围。

完整的正则替换体系(含 15 个可直接抄的实例)在 正则替换 15 个实例 里,这里不展开。

行操作里还有一整套“删除重复行 / 排序 / 移除空行”的清洗流水线,用来把从 Excel、网页、日志里捞出来的脏数据理干净,见 Notepad++ 删除重复行与排序。


五、列编辑(按住 Alt 拖):Notepad++ 最被低估的功能

Notepad++ 列编辑(也叫列模式、矩形选择)就是按住 Alt 键拖出一个矩形选区,在选中的多行同一列上同时输入或删除内容。它解决的问题很具体:怎么一次修改 N 行的同一列。

先说清楚它能干什么。假设你有这样一段数据:

1001  张三  销售部
1002  李四  技术部
1003  王五  市场部
1004  赵六  技术部

现在要给每一行的行首加上 INSERT INTO staff VALUES ('。手工做就是复制粘贴四遍;数据有 100 行就是一百遍。

列编辑的做法是:按住 Alt,用鼠标从第 1 行的行首拖到第 4 行的行首,你会看到一个细长的矩形选区。这时候直接打字,四个光标位置同时插入:

INSERT INTO staff VALUES ('1001  张三  销售部
INSERT INTO staff VALUES ('1002  李四  技术部
INSERT INTO staff VALUES ('1003  王五  市场部
INSERT INTO staff VALUES ('1004  赵六  技术部

一步到位。这就是列编辑。

三种进入列选择的方式

方式 操作 适合什么场景
鼠标拖拽 按住 Alt + 鼠标左键拖拽 最直观,绝大多数时候用这个
键盘选择 Alt+Shift+方向键 精确控制,或者不想碰鼠标时
从当前位置到指定行 先把光标放到起点,再用 Alt+Shift+下箭头 拉出范围 行数很多时

选区建立后,你可以直接打字(所有行同时插入)、按 Delete(所有行同时删除该列)、或者 Ctrl+C / Ctrl+V 复制粘贴。

Alt+C:列编辑器,不只是插文本

Alt+C 打开“编辑 → 列编辑器”,这是列编辑里最实用的一块。它有两种模式:

模式一:插入文本

在“要插入的文本”框里填内容,选中的每一行都会被插入这段文字。适合批量加前缀、加缩进、加注释符。

模式二:插入数字(递增序号)

三个核心参数:

参数 含义 例子
初始数字 从哪个数开始 填 1,第一个就是 1
增量 每个之间加多少 填 1 得 1,2,3,4;填 2 得 1,3,5,7
重复次数 同一个数字重复几遍再递增 填 2 得 1,1,2,2,3,3

另外还有两个常被忽略的:

  • 格式:可以选十进制、十六进制、八进制、二进制。想生成 0x10、0x11、0x12 这样的十六进制序列,直接在这儿选 Hex。
  • 前导零:勾选后,编号会补零对齐,比如 001、002、003。生成固定宽度的编号时用得上。

一个有用的细节:不管你是从上往下选还是从下往上选,列编辑器生成的编号永远是从上往下递增的。这个行为是固定的,所以不用纠结选择方向。

顺便说一句,从 v8.8.6 开始,十六进制输出还可以选大小写(A-F 还是 a-f)。如果你用的是更老的版本,只有大写。

实战:给 100 行数据加前缀和行尾逗号

这个例子值得完整走一遍,因为它会暴露列编辑的边界。

数据(为演示只列 4 行,实际操作 100 行也一样):

1001  张三  销售部  8500
1002  李四  技术部  12000
1003  王五  市场部  9300
1004  赵六  技术部  15600

第一步:行首加前缀。 列编辑的活,Alt 从第 1 行行首拖到最后一行行首,输入 (':

('1001  张三  销售部  8500
('1002  李四  技术部  12000
('1003  王五  市场部  9300
('1004  赵六  技术部  15600

第二步:行尾加逗号。 这一步列编辑做不了,因为每行长度不一样,行尾不在同一列,拖出来的矩形选区没法同时覆盖四个行尾。

这时候有两条路,取决于你的数据长什么样:

  • 如果各行长度恰好一致(比如固定宽度的导出数据),列编辑仍然可以:把矩形选区拖到最后一行最长的那个位置之后,直接打逗号。
  • 如果长度不一致(绝大多数情况),正则最省事:查找 ^(.+)$ 替换 \1,。 多光标理论上也能做,但要逐行点,下一章会把这件事说清楚,包括一个流传很广、其实是错的快捷键说法。

这个“行首能、行尾不能”的差别,就是列编辑最核心的局限:它只能处理对齐的矩形区域。 数据是整齐的,它快得离谱;数据长短不齐,它无能为力。

列编辑的另外两个限制

  1. 只处理“列”,不处理“模式”。 它能给 100 行的第 5 列同时加内容,但没法“只给技术部的行加”。有条件的批量处理是正则和脚本的领域。
  2. 对中文的支持要注意对齐。 中文字符通常是双宽的,如果你的字体设置导致中文和英文宽度不对齐,拖出来的“视觉矩形”可能跟实际的字符位置有偏差。处理中文数据前,建议先在 设置里把编辑器字体改成等宽字体;改完还不放心,就换多光标或正则。

六、多光标:先开启,再谈怎么一次改多处

Notepad++ 多光标编辑(多编辑)是在文件里任意多个位置各放一个光标,打字时所有光标同时输入。列编辑处理得了整齐的,处理不了东一个西一个的,这一章讲的是后者。

前置条件:先启用多编辑(这一步几乎所有教程都漏了)

Ctrl+点击 默认可能是没反应的。 多光标功能需要手动开启,而且开关的位置随版本变过:

Notepad++ 版本 开关在哪
v8.6.3 及之后 “设置 → 首选项 → 编辑 2 → 勾选‘启用多编辑(Ctrl+鼠标点击/选择)’”
v8.6 – v8.6.2 这个功能默认开启,选项被临时移除了
v8.6 之前 “设置 → 首选项 → 编辑 → 勾选‘启用多编辑(Ctrl+鼠标点击/选择)’”

如果你用的是 8.6.3 或更新的版本,在“编辑”页签里翻来翻去是找不到的,它搬到“编辑 2”了。这是很多人在新版本上“按教程做了没反应”的真正原因。

勾上之后是否要重启才生效,我没验证过;我的经验是大部分情况立即生效,不放心就重启一次。

三种放置光标的方式

1. Ctrl+鼠标点击:在任意位置加光标

按住 Ctrl,在你想改的每个位置点一下。然后直接打字,所有光标位置同时输入。位置可以不规则,中间可以隔很多行。

从 v8.6.1 起有个很贴心的行为:在已经放了光标的位置再 Ctrl+点击 一次,会取消那一个光标,不影响其他光标。放错了不用推倒重来。

2. 选中一段后 Ctrl+点击+拖拽:加第二个选区

先正常拖选一段文字,然后 Ctrl+拖拽 选第二段。这样可以一次复制多处内容,或者同时替换多处不同的文本。

3. 在多行行尾同时放光标:没有一键快捷键

⚠️ 这一条要专门讲,因为中文教程里流传很广的一个说法是错的。

“选中多行,按 Ctrl+Shift+L,每行行尾各加一个光标”。这个说法是照抄 VS Code / Sublime 的,在 Notepad++ 里不成立。

Notepad++ 官方用户手册的 Scintilla 命令表里,Ctrl+Shift+L 绑的是 SCI_LINEDELETE,官方描述是“删除整行(含行尾换行符),不影响剪贴板”。也就是说,你在 Notepad++ 里按它,得到的是当前行被删掉,而不是一排光标。

按Notepad++ 官方用户手册的说法,多编辑功能只能通过鼠标操作(原文:“available via mouse usage only”):Ctrl+点击 逐个加光标,或者 Ctrl+点击+拖拽 加第二个选区。手册里没有“选中多行、一键在每行行尾放光标”这条命令。

那行长不一致时,200 行行尾各加逗号到底怎么干?四条路,按划算程度排:

做法 怎么操作 适合什么情况
正则(推荐) ^(.+)$ → \1, 行长不一致、行数多。最快,一次点都不用点
零宽列选择 光标放到行尾,Alt+Shift+下箭头 拉到最后一行 只适合行长一致。列选择选的是“同一列”,不是“各行行尾”
多光标逐行点 Ctrl+点击 每行放一个光标,再按 End 统一移到行尾 十来行以内。200 行要点 200 次,不划算
装插件 BetterMultiSelection:先列选覆盖目标行,再按 End 天天要干这件事的人

我的选择是正则。200 行的量级,Ctrl+H 一条替换两秒钟完事,没必要数着点。

另外还有两条路。宏:“宏 → 开始录制”录一遍操作,再“宏 → 重复运行”指定次数,适合不会写正则、但要重复同一串固定操作的情况;代价是宏录的是光标轨迹,行长短不一时容易跑偏,录制前先想清楚,具体步骤见 批量替换与正则语法。天天要干这件事的话,装个光标增强插件比每次写正则省事,哪些值得装、怎么避开位数不匹配的坑见 Notepad++ 光标与选择类插件。

另外还有几个相关功能:Ctrl+F3 选中光标处的词并跳到下一处匹配;想看全文共有多少处,在查找对话框按 Ctrl+M 打开“标记”页、勾“标记全部”;Ctrl+F2 是打书签,用法在第八章讲。

多编辑和列编辑不能混用

这是一条官方手册里明确写了、但中文教程几乎不提的规则:

多编辑只在“流式选择”下工作,不和列块选择同时生效。 列模式下,同一时间只能有一个选区。

换句话说:你按着 Alt 拖出来的矩形,和 Ctrl+点击 放出来的多个光标,是两套互斥的机制。 想从一种切到另一种,先按 Esc 取消当前选择。

从 v8.6 起,Notepad++ 增加了一个选项“启用列选择转多编辑”(同样在“编辑 2”页签),打开之后列选择会被当成多编辑选择来处理,两套机制能有限地互通。这个功能不是所有人都需要,默认状态就够用。

列编辑 vs 多光标 vs 正则:该怎么选

这张表回答一个问题:我手上这个任务该用哪个。

Notepad++ 列编辑 / 多光标 / 正则替换 选型决策表
你的任务 列编辑 多光标 正则替换
给连续 100 行的行首加同样的前缀 ✅ 最快(Alt+拖拽,打字) 也行,但要放 100 个光标 可以,但要写正则,杀鸡用牛刀
给 200 行行尾各加逗号(行长不一) ❌ 不行(行尾不对齐) △ 能,但要逐行点 200 次 ✅ 最合适(^(.+)$ → \1,)
插入递增序号 1、2、3… ✅ 唯一选择(Alt+C) ❌ 做不到 ❌ 做不到
改散落在文件各处的同一个词 ❌ ✅ Ctrl+点击 逐个放光标 ✅ “全部替换”最快
只改以 # 开头的行 ❌ ❌ ✅ 唯一选择
一次改几十个文件 ❌ ❌ ✅ 在文件中替换
修改一个固定宽度的数据列 ✅ 最合适 也行 也行

一句话记:对齐的用列编辑,不对齐但只有几处用多光标,不对齐且量大、或者带条件的用正则。


七、注释、折叠与括号匹配:长文件的三个省力开关

代码一长,注释、折叠、括号匹配这三样就从“锦上添花”变成“离了不行”。

注释

  • Ctrl+Q:单行注释切换(再按一次取消)
  • Ctrl+Shift+Q:块注释(/* */ 风格)

Ctrl+Q 的好处是注释符号跟着当前语言自动变:JavaScript 是 //,Python 是 #,SQL 是 --,HTML 是 <!-- -->。你不用记每种语言用什么符号。

选中多行后按 Ctrl+Q,每一行都会被注释。

折叠

折叠标记在行号栏左侧的小三角/加减号上。

操作 效果
点行号旁的 - / + 折叠 / 展开单个块
Alt+0 折叠所有层级
Alt+Shift+0 展开所有
Alt+1 ~ Alt+8 折叠到第 1~8 层

Alt+0 看代码骨架特别好用:全部折叠后,一个文件的结构(有哪些函数、哪些类)一目了然。

折叠依赖语言识别。如果当前语言是“普通文本”,没有可折叠的语法结构,这些快捷键就不会有效果,这也是“我按了 Alt+0 却什么都没发生“最常见的原因。折叠与快捷键没反应的排查里列了完整的检查顺序。

括号匹配

光标放在 (、[、{ 任一端,按 Ctrl+B 跳到配对的另一端。同时两端会高亮。

写嵌套很深的表达式、或者在几百行的函数里找结尾的 } 时,这比数括号靠谱得多。

括号高亮的样式可以在“设置 → 首选项 → 高亮”里调整,默认是红色加粗。


八、书签与导航:在长文件里不迷路

文件一长,找东西就成了主要工作量。

书签

快捷键 作用
Ctrl+F2 在当前行打书签(再按一次取消)
F2 跳到下一个书签
Shift+F2 跳到上一个书签
Ctrl+Shift+F2 清空所有书签

书签会显示在行号栏左侧,是一个蓝色圆点。

书签真正的威力在于批量生成:在查找窗口的“标记”标签页里勾选“书签行”,然后点“标记所有”,所有匹配的行会一次性被打上书签。之后用 F2 逐个过目。“标记”页的完整参数(标记样式、清除标记、在文件中标记)在 查找与标记功能详解里有逐项说明。

比如要检查一个 5000 行的配置文件里所有 timeout 相关的设置:搜 timeout,标记所有,然后 F2 逐个跳。这比反复按“查找下一个”强,因为书签是持久的,你中途改了别的地方也不会丢。

书签还有几个进阶用法在“搜索 → 书签”菜单里:复制所有书签行(把标记的行提取出来粘贴到新文件)、删除所有书签行、反向选择(删除未标记的行)。做数据筛选时这几条很省事。

跳转

操作 效果
Ctrl+G 输入行号直接跳
Alt+左/右箭头 在光标历史里后退 / 前进
Ctrl+B 跳到匹配括号(见上一章)

函数列表面板

“视图 → 函数列表”会在侧边显示当前文件的函数/类/方法大纲,点击直接跳转。

这个面板依赖语言识别,还支持自定义规则(配置文件在 functionList\ 目录下)。对 Python、C、Java、JavaScript 这类主流语言开箱即用。

写长文档时它还有个另类用法:如果你给 Markdown 配了自定义语言规则,标题也可以被识别成“函数”列出来。这个在下一章会提到。


九、实战:用前八章的技能写完一篇 Markdown 文档

写 Markdown 是最好的综合练习,因为它同时要用到语法高亮、列编辑、书签、折叠和代码块处理。

为什么用 Notepad++ 写 Markdown

说实话,Notepad++ 不是专门的 Markdown 编辑器,它没有所见即所得的编辑体验。但它在几个场景下很合适:

  • 离线、轻量:打开就写,不用等加载,不占内存;
  • 纯文本天然兼容代码仓库:.md 文件进 Git,diff 清晰,review 友好;
  • 和代码混写方便:技术文档里大量的代码块、命令、配置片段,在 Notepad++ 里处理和写代码是一样的;
  • 大文件不卡:几百 KB 的长文档,Notepad++ 毫无压力;
  • 能装进 U 盘:Notepad++ 便携版解压即用,不留注册表,配置跟着目录走,换台电脑接着写。

如果你的主要需求是“写博客、要实时预览、要图片拖拽”,那 VS Code 或 Typora 更合适。这个取舍我会在第十章说。

第一步:先让 Markdown 有语法高亮

Notepad++ 默认不带 Markdown 语法高亮(至少到 8.x 为止,语言菜单里没有 Markdown 这一项)。这不是我记错,连 MarkdownViewer++ 插件的官方文档都明确写了“本插件不给 Notepad++ 添加 Markdown 高亮”,并推荐用第三方自定义语言文件。

解决办法是导入一个自定义语言(UDL)文件:

  1. 下载 Markdown 的 UDL 文件。社区里流传较广的是 markdown-plus-plus 项目那套(提供 default / obsidian / solarized 等几个配色)。
  2. “语言 → 自定义语言格式 → 导入”,选择下载的 .xml 文件。
  3. 重启 Notepad++,在“语言”菜单最下方找到 Markdown,选中。

如果你的版本已经自带了 Markdown 选项,跳过这步。

自定义语言(UDL)的原理和配置方法,在 自定义语言 UDL 配置 里讲得比较细,包括怎么导出给同事共用。

第二步:用列编辑快速画 Markdown 表格

Markdown 表格的源码长这样:

| 名称 | 类型 | 说明 |
| --- | --- | --- |
| name | string | 用户名 |
| age | int | 年龄 |
| email | string | 邮箱 |

手写这个很烦,尤其是列多了之后,对齐是纯体力活。

用第五章的列编辑来做:

  1. 先把内容按列写好,用 | 分隔(可以先不用管对齐):
| 名称 | 类型 | 说明 |
| name | string | 用户名 |
| age | int | 年龄 |
| email | string | 邮箱 |
  1. 插入分隔行:把第一行复制一份(Ctrl+D,第四章),然后用列编辑选中这一整行的列区域,把内容替换成 | --- | --- | --- |。

  2. 对齐列宽:如果某一列的内容长短不一导致视觉上不齐,用 Alt 拖出矩形选区,在短的行里补空格。

第 3 步要小心一点:列编辑补空格要求你拖出的矩形是“对齐”的,如果各行长度差异大,这一步会变成手动劳动。这时候不如放弃源码对齐:Markdown 表格的源码不需要对齐,渲染结果才是最终的。这是我个人的建议:表格列数少于 5 列时对齐一下看着舒服,超过 5 列就别折腾了,浪费时间。

如果你跳过了前面,可以回去看一眼 Alt+C 列编辑器(第五章),它还能给表格加一列递增的行号。

第三步:代码块与语法高亮

Markdown 代码块用三个反引号包裹,可以指定语言:

```python
def hello(name):
    print(f"Hello, {name}")
```

指定语言后,渲染时会按该语言的配色高亮。

这里有两个坑:

  • 反引号必须是英文半角。中文输入法下的 ` 会被当成普通字符,代码块渲染不出来。
  • 语言标识要写对。python 不是 Python3,js 通常可以但 javascript 更通用。标识写错不会报错,只是没有高亮,容易让人怀疑人生。

在 Notepad++ 里写代码块时,代码本身是不会有 Python 语法高亮的(因为整个文件被识别成 Markdown)。这是它的一个短板,可以接受。我一般的做法是在另一个标签页里单独写代码,确认能跑之后再贴进 Markdown。

第四步:用书签在长文档里跳章节

文档写长了之后,在几千行里找“第三章的结尾”是个真问题。

用第八章的书签:

  1. 在每个章节标题那一行按 Ctrl+F2 打上书签;
  2. 之后用 F2 / Shift+F2 在章节之间跳;
  3. 配合“搜索 → 标记”,可以一次性给所有 ## 开头的二级标题打上书签。

第 3 条是批量操作:查找内容填 ^##,搜索模式选“正则表达式”,在“标记”标签页勾选“书签行”,点“标记所有”。所有二级标题瞬间全部打上书签,然后用 F2 逐个跳。

尤其是“标记所有”那一下,把查找和书签串起来了(第八章)。

另外,第七章的折叠在这里也派得上用场:如果给 Markdown 配的 UDL 规则支持按标题折叠,你可以用 Alt+0 把整篇文档折叠成只有标题的骨架,Alt+1 展开到二级标题。这个功能取决于你导入的 UDL 规则是否定义了折叠,不是所有规则都支持。

第五步:实时预览插件

写的时候想看渲染效果,需要装插件。两个主流选择:

MarkdownViewer++(轻量、够用)

  • 安装:“插件 → 插件管理”搜 MarkdownViewer++
  • 打开预览:Ctrl+Shift+M(也可以点工具栏图标,或从插件子菜单进)
  • 停靠面板形式,可拖动到自己习惯的位置
  • 同步滚动:需要在“插件”子菜单里手动开启,开启后设置会被记住,下次自动生效
  • 支持自定义 CSS,导出的 HTML 也会套用同一份 CSS
  • 支持 HTML 和 PDF 导出(在设置里可以调 PDF 的纸张方向、大小和页边距)
  • 规范要求:.NET Framework 4.0 或更高
  • 符合 CommonMark 0.28 规范

以上信息来自 MarkdownViewer++ 官方页面。有一件事它自己也写明了:这个插件并不给 Notepad++ 添加 Markdown 语法高亮,要编辑器里的高亮还得靠前面说的 UDL 文件。很多教程把这两件事混为一谈,装上插件发现源码还是一片白,就是因为没搞清楚。

AnotherMarkdown(扩展语法多,适合写技术文档)

  • 基于 WebView2(Edge) 渲染,是 NppMarkdownPanel 的 fork,底层用 markdown-it
  • 支持大量扩展语法,其中最有价值的是 mermaid 流程图 / 时序图 / 甘特图、katex 数学公式、plantuml、以及代码块语法高亮
  • 规范要求:.NET 4.7.2 或更高
  • 工具栏上有个紫色图标,点一下开、再点一下关
  • 设置里可以指定深色模式专用的 CSS,跟 Notepad++ 的深色模式联动

扩展语法的完整清单(mermaid、katex、plantuml、footnote、emoji 等都支持)在 AnotherMarkdown 的官方仓库 里有一张表,需要哪个再查不迟。

怎么选? 只写普通文档(标题、列表、表格、代码块),MarkdownViewer++ 够用且更轻。要画流程图、写公式,选 AnotherMarkdown。

手动安装时的坑:如果你是从 GitHub 下载 zip 手动装的,Windows 会默认阻止下载的 DLL,Notepad++ 会报下面这个错:

AnotherMarkdown.dll is not compatible with the current version of Notepad++

这个报错是误导性的。它其实不是不兼容,是 DLL 被锁了。解决办法是对插件目录里所有 DLL(包括子文件夹里的)逐个右键 → 属性 → 勾选“解除锁定”。能用插件管理器装就别手动装。

更多插件的选择和避坑见 Notepad++ 插件推荐。

Markdown 写作的五个常见坑

  1. 中英文标点混用。中文引号 “ ” 和英文引号 " 长得像但渲染行为不同,链接里的括号尤其是重灾区。
  2. 缩进用 Tab 还是空格。Markdown 的列表层级和代码块靠缩进表达,Tab 和空格混用会让渲染结果跟预期不一样。建议统一转成空格。
  3. 代码块的语言标识写错。不报错,只是没高亮,很难排查。
  4. 图片用绝对路径。图一多,文档换个位置图全丢。用相对路径,图片放 images/ 子目录统一管理。
  5. 表格源码花太多时间对齐。前面说过了,渲染结果才是最终产物,源码对齐到“能看懂”就够了。

十、Notepad++ 还是 VS Code:我两个都装,按场景分工

两个我都用,而且是同时用。

数据(谨慎参考)

有一份开发者自测的数据流传很广:Notepad++ 冷启动约 0.8 秒、空载内存约 30MB,VS Code 冷启动约 3.2 秒、空载内存约 300MB。

必须说明:这是第三方博主的自测结果,测试设备、插件数量、文件类型等条件都不清楚,不能当作官方数据或权威基准。 我引用它只是因为它指向的方向和我自己的体感一致:Notepad++ 确实更快更省。

Notepad++ 赢在哪

维度 说明
启动速度 点开就进,不用等。临时改一行配置时这个差距很明显
内存占用 几十 MB 级别,开十几个标签也不心疼
大文件 几百 MB 的日志能开(配合关掉高亮和自动换行)
零配置 装完就能用,不需要挑插件、配工作区
列编辑 这是它相对 VS Code 最舒服的地方,VS Code 的 Alt+拖拽行为不完全一样

VS Code 赢在哪

这部分要诚实说,因为差距是实打实的:

  • Git 集成:提交、分支、diff、冲突解决,全在编辑器里。Notepad++ 没有。
  • 调试器:断点、变量监视、调用栈。Notepad++ 没有。
  • IntelliSense:智能补全、跳转定义、重构、类型提示。Notepad++ 只有基于关键字的自动补全。
  • 终端集成:内置终端,不用切窗口。
  • 跨平台:Windows / macOS / Linux 通吃。Notepad++ 只有 Windows(这一点在 Notepad++ 官网 上也写得很明确,它就是个 Windows 编辑器,没有跨平台计划)。
  • 扩展生态:VS Code 的插件市场量级远超 Notepad++。

结论:两个都装,按场景分工

我的实际用法是这样的:

场景 用哪个
临时改一个配置文件、看一段日志 Notepad++
处理几百 MB 的文本 Notepad++
整理数据、批量改文本 Notepad++(列编辑和正则太顺手)
开发项目(写代码、调试、提交) VS Code
写需要实时预览和图表的技术文档 VS Code + Markdown 插件
在 macOS / Linux 上干活 VS Code(Notepad++ 上不了)

它们不是替代关系。硬盘上多占几十 MB,换来两套趁手的家伙,很划算。

如果只是想先试试手感,下载 Notepad++ 中文版 拿一份装上看。它只有几 MB,装完不用任何配置就能用,不满意删掉也不心疼。


十一、新手最容易踩的 8 个坑

如果你已经会用,但总觉得哪里别扭,看这 8 条。更零散的疑问,Notepad++ 常见问题 里有标准答案。

  1. 打字时后面的字被吃掉
    按到 Insert 键了,切换成了“改写”模式。再按一次 Insert 回来,看状态栏能确认。
  2. 中文乱码(自己打开乱码,或传给同事后乱码)
    编码问题。别直接点“转为”,先“以…格式编码”试。团队统一 UTF-8 无 BOM 能根治,完整方法见 中文乱码怎么救。
  3. 写了半天没保存,崩了
    Notepad++ 默认不自动保存。去“设置 → 首选项 → 备份”开起来,或者装 AutoSave 插件。
  4. 插件装不上
    九成是位数不匹配:32 位的 Notepad++ 装不了 64 位插件。“? → 关于”里能看到自己是哪个版本。还没装或想换版本的话,先确认要 64 位版 还是 32 位版(现在绝大多数机器选 64 位,只有要装某些只提供 32 位的老插件时才需要 32 位)。
  5. 双击文件没用 Notepad++ 打开
    文件关联被系统抢回去了(Windows 更新常干这事)。重新去“设置 → 首选项 → 文件关联”勾一遍。
  6. Python 代码缩进报错
    Tab 和空格混用。“视图 → 显示符号 → 显示空格与制表符”让它们现形;Python 项目建议在“设置 → 首选项 → 语言”里勾上“替换为空格”。
  7. 行尾符不对,脚本在 Linux 上跑不起来
    Windows 的 CRLF 传到 Linux 会报 ^M: bad interpreter。看状态栏确认当前是 Windows (CR LF) 还是 Unix (LF),用“编辑 → 行尾符转换”切换。
  8. 打开大文件卡死
    先关自动换行、关语法高亮。如果文件超过几百 MB,去看 大文件卡死的四步优化方案,那篇把大文件、乱码、远程编辑三类问题放在一起讲。

其中编码、行尾符、大文件这三类都属于“文件不听话”,在编码与乱码专题里集中讲透了。


十二、写在最后

如果只能记住一样,记第五章的列编辑:它是 Notepad++ 里少数几个 VS Code 做起来没这么顺手的功能。搞不定的时候改用正则,见 正则替换 15 个实例。

下一步:Notepad++ 进阶使用教程

  • 要批量改写大段文本(改日期格式、提取日志字段、给 SQL 批量加语句)→ 批量替换与正则语法,里面有 15 个能直接抄的实例。
  • 要把主题、字体、自动保存这些一次性设好,并且换电脑时不丢配置 → Notepad++ 设置教程。
  • 要删重复行、排序、从一大堆日志里挑出有用的行 → Notepad++ 删除重复行与排序,讲文本清洗的完整流水线。

还想看更多 Notepad++ 教程?

回到教程总入口,5 篇长文专题一次看全,从入门到进阶都不绕路。

查看全部使用教程
使用教程