Notepad++原生不支持D语言,必须手动配置F5命令调用dmd:先确认dmd已加入PATH并能通过cmd执行dmd -v,再在F5中输入cmd /k chdir /d "$(CURRENT_DIRECTORY)" & dmd -of"$(NAME_PART).exe" "$(FILE_NAME)" & "$(NAME_PART).exe" & PAUSE & EXIT,保存为“Run D”并绑定快捷键;常见失败原因包括缺少void main()、文件编码非UTF-8无BOM,或杀毒软件拦截生成的exe。

Notepad++ 本身不内置 D 语言支持,运行 dmd 编译的程序必须手动配置命令行调用路径——关键不是“能不能”,而是“dmd 是否在系统 PATH 中”以及“命令是否能正确识别源文件名和生成可执行文件”。
确认 dmd 是否可用(Windows 命令行)
打开 cmd 或 PowerShell,直接输入:dmd -v
如果返回版本信息(如 DMD64 D Compiler v2.108.1),说明已安装且 PATH 正确;若提示“不是内部或外部命令”,则需先将 dmd 的 bin 目录(例如 C:\D\dmd2\windows\bin)添加到系统环境变量 PATH,并重启 Notepad++。
用 F5 设置一键编译+运行(推荐方案)
按 F5 打开“运行”对话框,输入以下完整命令(注意路径含空格时必须加英文双引号):cmd /k chdir /d "$(CURRENT_DIRECTORY)" & dmd -of"$(NAME_PART).exe" "$(FILE_NAME)" & "$(NAME_PART).exe" & PAUSE & EXIT
说明:
• dmd -of"$(NAME_PART).exe" 显式指定输出文件名,避免默认生成 test.exe 覆盖其他项目
• chdir /d 确保编译和运行都在当前文件所在目录,防止找不到依赖或写入失败
• & PAUSE & EXIT 保证控制台窗口不闪退,能看到输出结果
保存时命名为“Run D”,建议绑定快捷键(如 Ctrl+Shift+D)。
常见错误:编译通过但运行报错“找不到入口点”
这是 D 语言特有的链接问题,通常由以下原因导致:
• 源文件未包含合法的 void main() 函数(D 不接受 int main() 或无返回值声明)
• 文件编码不是 UTF-8 无 BOM(Notepad++ 默认保存为 UTF-8-BOM,部分旧版 dmd 会解析失败)→ 在 Notepad++ 中用“编码 → 转为 UTF-8 无 BOM”重新保存
• 使用了 core.stdc.stdio 但未链接 C 运行时(极少发生,一般 dmd 自动处理)
最小验证代码应为:
import core.stdc.stdio;<br>void main() { printf("Hello D!\n".ptr); }
为什么不用 NppExec 或 Compiler Plugins?
• NppExec 插件虽支持脚本化,但对 D 语言无预置模板,需手动写脚本,且错误输出不易捕获
• Compiler Plugins 官方未收录 D 支持,强行配置 GCC/Clang 模板会导致参数不兼容(如 -o 行为不同、链接器选项冲突)
• 直接走 F5 + cmd 最轻量、最可控,所有变量($(FILE_NAME)、$(NAME_PART))均由 Notepad++ 原生解析,无插件兼容性风险
真正麻烦的从来不是配置命令,而是确保 dmd 能被系统找到、源码符合 D 的入口约定、以及输出路径不被杀毒软件拦截——这些细节比任何插件都更影响第一次运行成败。


















