Notepad++中文网下载 - Notepad++官网

Notepad++中文网下载 - Notepad++官网

Notepad++ 支持约 90 种编程语言

错误列表

ErrorList 语言从 v8.8.1 版本开始提供,适用于查看日志文件、编译器错误输出、彩色终端输出(如 Windows PowerShell 或 Linux 终端),以及其他使用 ANSI 转义码的内容。该语言的语法高亮会对各类错误信息进行着色,并应用 ANSI 转义码指定的前景色(即使转义码包含背景色设置,也不会改变编辑器背景)。
当该语言处于激活状态时,若开启 视图 > 显示符号 > 显示控制字符与 Unicode 行尾(或显示所有字符),ANSI 转义序列会以 ESC [31m 这类形式显示并占据空间;若关闭控制字符显示(或关闭显示所有字符),整个转义序列会被隐藏。这与其他语法解析器不同,其他解析器关闭控制字符显示时通常只隐藏 ESC 符号,而不会隐藏转义序列的其余部分。
在 v8.8.1 中,默认对后缀为 .err 或 .log 的文件应用 ErrorList 解析规则;v8.8.2 改为仅作用于 .err 文件(因为 .log 文件类型过于多样)。如果你是从 v8.8.1 升级到 v8.8.2 及以上版本,.log 不会自动从默认关联扩展名中移除。你可以编辑 % AppData%\Notepad++\langs.xml(或对应配置文件路径),搜索 “errorlist”,将 ext="err log" 改为 ext="err",保存后重启 Notepad++ 即可。若你在 v8.8.1 之前安装并希望使用 ErrorList,可参考升级相关的配置文件说明。

MS-DOS 风格

语言 > M > MS-DOS 风格,在样式配置器中显示为 “DOS Style”,默认关联 *.nfo 扩展名,主要用于查看 ASCII 艺术画。该语言假定文件使用旧式 DOS 制表符等字符,因此默认采用 OEM-US 编码,并自动调整行距使字符对齐,同时强制使用 Lucida Console 字体以保证正确显示。
在旧版本中该字体无法修改(样式配置器中对应选项为禁用状态);从 v8.8.4 开始,你可以通过手动编辑配置文件启用字体选择:
  1. 按照配置文件编辑说明,打开 % AppData%\Notepad++\stylers.xml 或当前主题的 XML 文件。

  2. 找到 name="nfo" 对应的 <LexerType> 节点。

  3. 在内部的 <WordsStyle name="DEFAULT" .../> 行中添加 fontName="字体名",不记得准确字体名可留空为 fontName=""。

  4. 保存文件并重启 Notepad++。

设置完成后,样式配置器中的字体选择器会被启用,你可以直接在界面中选择字体,无需手动编辑 XML。

主题与语言支持

部分主题可能未更新,缺少某些语言的语法高亮配置。若你使用的主题缺少所需语言,可打开默认主题的 stylers.xml 或当前主题的 XML 文件,同时参考安装目录下的 stylers.model.xml。在 stylers.model.xml 中找到缺失语言对应的 <LexerType> 配置段,复制到主题 XML 的对应位置,保存后重启 Notepad++,该语言即可在样式配置器中使用。若为深色主题,建议从 DarkModeDefault.xml 复制配置,避免配色突兀。添加后你可在样式配置器中进一步调整颜色方案。
样式配置器中部分语言的默认关键字列表定义在 langs.xml 中,默认模板位于 langs.model.xml。若模板文件更新,你可将新增或修改后的关键字列表复制到用户配置的 langs.xml 中。

启用 Notepad++ 未激活的 Lexilla 解析器

Notepad++ 使用的 Lexilla 语法库支持很多语言,但并未全部加入到语言菜单和样式配置器。仅提交需求 Issue 通常不足以让开发团队添加,因为开发者无法验证所有语言的适配效果。你可以提交 Issue 说明希望添加的语言,有能力的话建议直接提交 Pull Request。提交 PR 前需先创建对应 Issue,否则通常不会被合并。
自行创建 PR 启用未激活的解析器,需要熟悉 GitHub、Git 以及 C++ 开发。以示例语言 “Xyz Pdq” 为例,需修改以下文件:
  • PowerEditor/src/MISC/PluginsManager/Notepad_plus_msgs.h

    在 LangType 枚举末尾、L_EXTERNAL 之前添加 L_XYZPDQ 常量。

  • PowerEditor/src/menuCmdID.h

    在现有语言之后、IDM_LANG_EXTERNAL 之前添加 #define IDM_LANG_XYZPDQ。

  • PowerEditor/src/ScintillaComponent/ScintillaEditView.h

    声明 setXyzPdqLexer (),简单解析器可直接在此调用 setLexer 并指定关键字列表。

  • PowerEditor/src/ScintillaComponent/ScintillaEditView.cpp

    将语言加入 _langNameInfoArray 数组,填写内部名称、菜单名、状态栏名称、语言 ID、解析器 ID 等信息;

    在 defineDocType () 的 switch 中添加对 setXyzPdqLexer () 的调用;

    实现 setXyzPdqLexer (),支持子样式的语言可使用 populateSubStyleKeywords ()。

  • PowerEditor/src/Notepad_plus.cpp

    在 menuID2LangType () 中添加 case IDM_LANG_XYZPDQ 并返回对应语言 ID。

  • PowerEditor/src/Parameters.cpp

    在 langTypeToCommandID () 中添加对应语言与菜单 ID 的映射。

  • PowerEditor/src/Notepad_plus.rc

    在语言菜单的字母分类和完整列表中按字母序添加菜单项。

  • PowerEditor/src/NppCommands.cpp

    在 command () 的 switch 中添加 IDM_LANG_XYZPDQ 分支。

同时需要添加配置文件:
  • 在 langs.model.xml 中添加 <Language> 节点及关键字配置。

  • 在 stylers.model.xml 及所有主题 XML 中添加 <LexerType> 与样式定义。

  • 可选添加自动补全与函数列表定义,并附上对应的单元测试。

完整测试并确认语法高亮正常后,即可提交 PR 并关联已创建的 Issue。

语言检测优先级

打开文件时,Notepad++ 按以下优先级判断文件语言:
  1. 命令行使用 -l 参数指定的语言。

  2. 会话文件(session.xml)中记录的语言。

  3. 文件扩展名匹配内置语言或用户自定义语言的关联扩展名。

  4. 文件名匹配特定名称,如 makefile 对应 Makefile、CMakeLists.txt 对应 CMake、Vagrantfile 对应 Ruby 等。

  5. 文件首行包含可识别标记,如 XML/PHP/HTML 声明行或 Linux 的 shebang 行(#!/usr/bin/python 等)。

  6. 以上均不匹配时使用默认语言。

Notepad++ 按顺序匹配,命中后即停止检测。你可随时通过语言菜单手动切换,当前语言会随会话保存,下次打开时自动沿用。文件另存为时,会根据新文件名与内容重新按上述规则判断语言。新建文档在保存前默认使用通用语言。


«    2026年4月    »
12345
6789101112
13141516171819
20212223242526
27282930
搜索
控制面板
您好,欢迎到访网站!
  查看权限
网站分类

Powered By Z-BlogPHP 1.7.5

Copyright Your WebSite.Some Rights Reserved.