notepad++支持-n(跳转行)、-c(配合-n跳转列)、-nosession(禁用会话恢复)、-multiinst(多实例)、-noplugin(禁用插件)等命令行参数,需严格遵循无空格分隔、路径加引号等格式规则。

notepad++.exe 支持哪些命令行参数
Notepad++ 的命令行参数不依赖插件,直接由主程序解析,但必须严格遵循格式,否则会被忽略或报错。官方文档(npp.exe --help)可列出全部支持项,常见且实用的就几个,其余多用于调试或企业部署。
关键原则:npp.exe 后面**不能有空格分隔参数与值**,比如 -n123 正确,-n 123 无效;路径含空格必须用英文双引号包裹;多个文件可连续列出,但每个都需独立加引号。
-
-n:跳转到指定行,行号必须是正整数,如npp.exe "log.txt" -n42 -
-c:配合-n使用才生效,单独用无效,如-n100 -c5 -
-nosession:强制禁用会话恢复,启动时无视session.xml,比改config.xml更快见效 -
-multiInst:每次启动都新建独立进程,避免和已有实例共享标签页(适合脚本批量打开不同项目) -
-noPlugin:跳过所有插件加载,排查插件冲突时用,启动会明显变快
为什么 -n123 有时没反应
最常见原因不是参数写错,而是 Notepad++ 已在运行且启用了「单实例模式」(默认行为)。此时新命令行会把文件/定位请求发给已有进程,但若该进程正忙(比如卡在某个弹窗、插件阻塞),跳转就会静默失败。
- 检查任务管理器中是否残留
notepad++.exe进程,尤其是托盘图标没退出时 - 临时加
-multiInst测试:如果npp.exe -multiInst "a.py" -n50能准确定位,说明是单实例通信问题 - 某些插件(如 Python Script、NppExec)会劫持命令行参数处理逻辑,禁用后重试
- 如果文件是只读或被其他程序占用,
-n仍会打开文件,但光标可能停在开头而非目标行
如何让命令行启动时工作目录等于文件所在目录
Notepad++ 自身没有 -wd 或类似参数控制工作目录。它的子进程(比如通过「运行」菜单调起的 python.exe)默认继承 Notepad++ 主进程的当前目录——而这个目录通常是安装路径(如 C:\Program Files\Notepad++),不是你编辑的文件位置。
真正可控的方式是用 start 命令显式指定:
start "" /D "C:\myproject" "C:\Program Files\Notepad++\notepad++.exe" "C:\myproject\main.py" -n25
这里 /D 参数才是决定工作目录的关键,start 启动的新进程会以 C:\myproject 为当前目录,后续所有「运行」命令里的 $(CURRENT_DIRECTORY) 宏也才可靠。
- 别依赖
cd+ 启动组合:在批处理里先cd /d C:\myproject再调npp.exe,在某些 shell 环境下不生效 - 如果用快捷方式,右键 → 属性 → 「起始位置」字段填目录路径,等效于
/D - 便携版用户注意:
/D指向的必须是实际存在的目录,不存在会导致 Notepad++ 启动失败且无提示
在「运行」菜单里调外部命令时怎么传参
Notepad++ 的「运行」菜单命令本质是拼接字符串后丢给 cmd.exe 执行,所以参数传递要兼顾两层解析:Notepad++ 变量展开 + cmd 命令行解析。
- 用
$(FULL_CURRENT_PATH)代替手动写路径,它自动加双引号,防空格截断 - 想传额外参数给目标程序(比如
python script.py --debug),得写成:C:\Python39\python.exe "$(FULL_CURRENT_PATH)" --debug - 如果参数本身含空格或特殊字符(如
--input="file name.txt"),整个参数必须再套一层双引号:--input="file name.txt"→ 实际写为--input="\"file name.txt\""(注意转义) - Windows 下中文参数容易乱码,建议前置
cmd /c chcp 65001 >nul &&切换 UTF-8 编码,再跟主命令
变量名大小写敏感:$(FULL_CURRENT_PATH) 有效,$(full_current_path) 无效;所有内置变量都在官方文档的「Environment variables」章节里,别凭记忆手写。











