使Notepad ++记住特定文件的特定语言?


10

我有许多文件,即使它们具有相同的扩展名,我都希望它们以不同的方式上色。例如,我有一些* .config文件实际上是Python文件,而另一些是XML文件。当我打开它们时,我必须手动将语言更改为Python或XML。

例如,如果Notepad ++记住c:\ foo \ bar \ whatevs.config应该使用Python样式,而c:\ hey \ ho \ boo.config应该使用XML样式,那就太好了。

在Notepad ++中有什么方式可以说“记住上次打开文件时使用的语言”吗?插件?


通过使用正确的文件扩展名,您是否在某处遇到问题?
iglvzx 2011年

1
我有一个Python应用程序,它使用实际上是Python文件的.config文件,而.NET使用实际上是XML文件的.config文件。再举一个例子,我有使用.txt扩展名的markdown文件,因为它们与不了解什么.md文件的Android应用同步。
mhenry1384

我知道了。它是否还记得您在打开文件时关闭Notepad ++,然后重新打开Notepad ++时设置的语言?
iglvzx 2011年

2
实际上,如果您选中了“记住下次启动的当前会话”(我没有)。但是,当您关闭文件并重新打开它时,它会忘记它。
mhenry1384

Answers:


12

有一个GUI选项可以在文件扩展名和语言之间建立静态链接(而不是按照建议的@ jakub.g 手动编辑%APPDATA% langs.xml文件或%PROGRAMFILES% langs.model.xml文件):

如果转到设置->样式配置器->选择左侧的语言,则在屏幕底部将显示两个文本框:

样式设定器

在此示例中,我在User ext.文本框中添加了“ config”,因此任何时候我打开一个扩展名为.config的文件时,都会在“语言”菜单下自动选择XML语法突出显示。

我知道这并不能解决记住要对单个特定文件应用哪种语法突出显示的问题,但是这是为所有文件扩展名设置突出显示的简便方法。

如果您想记住单个文件的语法突出显示选项,我相信唯一的选择是选中该复选框:设置->首选项-> MISC->记住当前会话以进行下一次启动。


它不会保存它。一旦关闭并重新打开notepad ++,更改就消失了。
r3wt

@ r3wt我相信您需要run as administrator否则将没有权限将首选项保存到您的用户配置文件。
wweicker

这不适用于内置文件扩展名。您必须从langs.xml文件中语言的扩展部分中手动删除扩展名。如果启用了“云中的设置”选项,则该文件可以位于%APPDATA%/ Notepad ++或Notepad ++安装目录中,也可以位于您的云存储(即DropBox,OneDrive或GoogleDrive)中。
伊恩·斯坦威(Yan Stanway),2015年

这对自定义语言有效吗?我在列表中的任何地方都找不到我的。
FabianRöling17年

1

这并不是您所要的,而是适用于您将.txt文件作为Markdown文件的注释。一种可能的选择是将Markdown设置为所有.txt文件的语言。

假定已安装markdown_npp。编辑以下文件需要您自担风险(在编辑这些文件之前制作备份副本):

  • 从%appdata%\ Notepad ++打开langs.xml
    • 从常规语言中删除txt扩展名:
      • 之前: <Language name="normal" ext="txt" />
      • 后: <Language name="normal" ext="" />
  • 从%appdata%\ Notepad ++打开userDefineLang.xml
    • txt扩展名添加到Markdown语言中:
      • 之前: <UserLang name="Markdown" ext="md">
      • 后: <UserLang name="Markdown" ext="md txt">
  • 重新启动记事本++

为我工作,这是我可以获得notepad ++永久存储关系的唯一方法。谢谢
r3wt 2015年

0

要在扩展名和语言之间添加固定连接,请打开NPP文件夹(例如C:\Program hFiles\Notepad++),那里有几个XML文件。编辑他们(我不记得究竟哪,langs.xmllangs.model.xml)。

例: <Language name="cpp" ext="h hpp hxx cpp cxx cc">

找到所需的语言并添加扩展名。

但是我不知道如何使同一扩展名随文件夹而变化。

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.