Notepad++ 启动时默认打开的目录取决于启动方式:快捷方式的“起始位置”、命令行当前目录或start命令指定的/D路径;修改快捷方式“起始位置”是最可靠方法,影响文件打开路径、拖入解析及插件相对路径执行。

Notepad++ 启动时默认打开哪个目录?
Notepad++ 本身没有“默认工作目录”设置项,它启动时的当前工作目录(cwd)取决于你如何启动它:双击快捷方式、命令行调用、还是右键菜单打开。它不会读取配置文件里的路径,也不会记住上次关闭时的文件夹。
修改快捷方式目标路径能强制指定起始目录吗?
可以,而且这是最可靠、最常用的方法。Notepad++ 启动时会把快捷方式的“起始位置”(Start in)设为当前工作目录,影响 File → Open 对话框默认路径、拖入文件的相对解析、以及插件(如 NppExec)中执行的相对路径命令。
- 右键桌面或开始菜单中的 Notepad++ 快捷方式 → “属性”
- 在“快捷方式”选项卡下,找到“起始位置”字段
- 填入你想要的绝对路径,比如
C:\Users\Alice\Documents(结尾不加反斜杠) - 点击“确定”保存
注意:如果该路径不存在,Notepad++ 不报错,但后续打开文件对话框会退回到系统默认文档目录;路径有空格无需额外引号,Windows 属性框已自动处理。
通过命令行启动时怎么控制默认目录?
命令行本质是靠 shell 的当前目录生效,不是靠 Notepad++ 参数。但你可以用 start 命令显式指定工作目录:
start "" /D "C:\MyProjects" "C:\Program Files\Notepad++\notepad++.exe"
这比直接 cd + 启动更稳定,尤其在脚本或批处理中。不要用 -nosession 或 -multiInst 来试图影响目录——它们和工作目录无关。
常见错误:在命令行里加 -open 或 -n 参数,以为能设目录,其实这些只控制打开的文件或行号,不改变 cwd。
插件或宏里读取/写入文件时路径为什么总出错?
因为很多插件(比如 Python Script、NppExec)内部调用的是当前工作目录下的相对路径,而这个目录由上面两种方式决定,不是由你当前编辑的文件位置决定。例如你在 D:\src\main.cpp 里按 F6 执行 NppExec 脚本,脚本里写 dir build,实际查的是快捷方式“起始位置”下的 build 文件夹,不是 D:\src\build。
- 检查快捷方式“起始位置”是否被意外改成了
C:\或空值 - NppExec 中可用
cd $(CURRENT_DIRECTORY)显式切换到当前文件所在目录 - Python Script 插件里用
notepad.getFullFilename()获取当前文件路径,再用os.path.dirname()拼相对路径,别依赖os.getcwd()
最容易被忽略的一点:Windows 任务栏固定图标默认沿用原始快捷方式的“起始位置”,哪怕你后来新建了另一个快捷方式并改了路径——右键任务栏图标 → 右键 Notepad++ 名称 → “更多” → “打开文件位置”,才能真正定位并修改它背后的快捷方式。

















