在Notepad ++中为语言的语法突出显示指定自定义扩展


281

在当前版本的Notepad ++中,打开.sql文件会导致Notepad向其应用SQL语法突出显示。我希望Notepad ++也可以对其他扩展名执行相同的操作,是否可以在其中进行一些定义?


还不是吗 默认情况下应该这样做。
D'Arvit 09年

2
它适用于.sql文件,而不适用于其他文件
Sathyajith Bhat

4
我希望Notepad ++只记得从菜单中为每个文件选择的语言,或者是第二次将扩展名与某种语言相关联时,可以将扩展名添加到该语言的样式配置器中。
马修·洛克

请注意,您还可以通过“ 语言/定义语言...”菜单来修改扩展程序的语言颜色。
wip

Answers:


348

在notepad ++中打开文件时,它将尝试基于文件扩展名加载内容的语法高亮显示。

如果您将自定义扩展名用于现有的一种语言,则可以在“设置”->“样式配置器”中添加自定义扩展名。选择语言,然后在“用户扩展名”编辑框中添加扩展名。要添加多个扩展名,请使用将它们分开Space

然后,您需要重新打开文件以查看语法突出显示。

您还可以通过从语言菜单中选择其他语言来更改语法突出显示样式。


我已经尝试过了,但是它只分配给1个扩展名,我想分配多个扩展名。
Sathyajith Bhat

24
您可以通过用空格隔开添加多个扩展名,并将其添加到我的帖子中
T. Kaltnekar 09年

20
请注意,进行此更改不会影响当前在Notepad ++中打开的文件。此外,关闭和重新打开Notepad ++仍然不会影响在会话之间保持打开状态的文件。必须关闭并重新打开各个文件才能看到效果。
mwolfe02 2012年

此方法也不适用于用户定义的语言。对于这些内容,请参见下面的答案,但是请代替user.lang.xml来编辑userDefineLang.xml
Chase Sandmann

2
仅当以管理员身份打开Notepad ++时,此方法才有效。请参见以下问题:github.com/notepad-plus-plus/notepad-plus-plus/issues/67似乎还可以将程序文件中的更改(这就是权限问题)保留在C:\ Program Files(x86)\中Notepad ++ \ themes \ SelectedTheme.xml,这意味着在切换主题时不使用此设置。
Daniel Bogdan

67

找到langs.xml文件(通常在C:\ Users [用户名] \ AppData \ Roaming \ Notepad ++下),用Notepad ++打开它,找到开头的行, <Language name="sql" ext="sql"并在ext字段中添加所需的扩展名,并用ext分隔它们。空间。

要针对用户定义的语言执行此操作,请查找userDefineLang.xml并进行edit ext=""

如果以“便携式”模式安装notepad ++,则langs.xmluserDefineLangs.xml将直接位于notepad ++所在的文件夹中。


6
这种方法也很好用,但是T. Kaltnekar的方法更加用户友好,谢谢!
Sathyajith Bhat

这是我知道的唯一方法:)。
亚历克斯

2
很好,我更喜欢这种方法,我有很多自定义扩展名,并且通过这种方式更容易复制和粘贴它们。
詹姆斯,

2
这种方法对我有用。我不明白为什么无法在GUI中添加扩展名。“ C:\ users(user)\ appdata \ roaming \ notepad ++ \ langs.xml”
jimueller 2012年

我没有安装Notepadd ++,只是解压缩了,所以lang.xml文件在应用程序目录中;-)
Betlista 2015年

0

如果使用的是Notepad ++会话文件(我将其命名为*.nppxml),则可以编辑它们并更改<File lang="...">属性,例如

<File ... lang="Normal Text" ... filename="httpd.conf"
<File ... lang="Normal Text" ... filename="some.log"

至:

<File ... lang="Powershell" ... filename="httpd.conf"
<File ... lang="log" ... filename="some.log"

立即获得*.log高亮的默认(或用户定义的文件定义)语法高亮显示,而无需重新打开每个文件等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.