Notepad ++:自定义语法突出显示.txt文件

时间:2009-12-09 23:19:52

标签: syntax-highlighting notepad++

我保留了我认为在我的计算机上作为文本文件有用的代码示例。我将它们存储为txt文件而不是它们所用的语言,因此它们将在Notepad ++而不是编辑器中打开(即我不希望我的c ++示例在IDE中打开,只是在记事本中打开)。

有没有办法让Notepad ++通过阅读文本文件中的特殊代码对文本文件应用适当的语法高亮?

例如,如果我有一些sql,文本文件的第一行可以这样读:

##Language=SQL 

... my sql code properly highlighted as sql ...

提前致谢。我意识到我可以在打开文件后选择语言(即语言> SQL),但如果可以自动执行它会更方便。

5 个答案:

答案 0 :(得分:4)

不,它不能。您可以手动选择它或使用特殊的文件类型扩展名,然后将其与Notepad ++关联,并告诉它将文件突出显示为适当的语言。

例如,使用SQL的.txtsql文件,C ++的.txtcpp文件等。

答案 1 :(得分:2)

我建议给他们正确的文件扩展名,然后将这样的内容导入您的注册表中:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\NotepadPlusPlus]

[HKEY_CLASSES_ROOT\*\shell\NotepadPlusPlus\command]
@="C:\\path\\to\\notepad++.exe \"%1\""

然后,您可以通过快速右键单击在NP ++中打开文件,NP ++将能够根据文件扩展名自动检测正确的语言。

答案 2 :(得分:2)

手动选择是一种更简单的方法。以.txt格式存储所有文件(与java或C或C ++无关)。在Notepad ++中打开文件,然后在菜单中选择相应的语言。例如语言 - > Java的。

答案 3 :(得分:2)

我自己写完了:

  1. 您需要Python插件

  2. 将以下代码添加到您的startup.py文件

  3. 将Python初始化设置从“LAZY”切换为“ATSTARTUP”

  4. 有关分步解决方案,请参阅my blog

  5. 
    #if found determine the menu command and switch language in NPP
    def switch_language_view(args):
        notepad.activateBufferID(args["bufferID"])
        lineone = editor.getLine(0)
        if '##' in lineone:
            lineone = lineone[lineone.rfind('##'):].replace('##', '')
            lineone = "MENUCOMMAND." + lineone.upper()
            try:
                notepad.menuCommand( eval(lineone) )
            except:
                pass
    
    #command to link notification
    notepad.callback(switch_language_view, [NOTIFICATION.FILEOPENED])
    
    

答案 4 :(得分:1)

您可以尝试一些npp脚本,

python

lua

和/或黑客宏。您可以使脚本有条件地开始,检查您的特殊字符串并为您选择语言。