【问题标题】:Notepad++ : Custom Syntax Highlighting for .txt filesNotepad++:.txt 文件的自定义语法高亮
【发布时间】:2009-12-09 23:19:52
【问题描述】:

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

有没有一种方法可以让 Notepad++ 通过读取文本文件本身中的特殊代码对文本文件应用适当的语法高亮显示?

例如,如果我有一些 sql,则文本文件的第一行可能是这样的:

##Language=SQL 

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

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

【问题讨论】:

    标签: syntax-highlighting notepad++


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我暂时接受。我希望可能有一个宏或插件,但还没有找到任何东西。
    • @jj.,顺便说一句,你为什么不直接用notepad++直接改变Windows打开.sql.cpp等?
    • @Pacerier 我仍然希望 .sql .cpp 文件在各自的 IDE 中打开。我的代码示例文件是 .txt
    • @jj。嗯,把你的示例文件命名为name.sql.sample和name.cpp.sample怎么样,然后设置Notepad++识别.sql.sample和.cpp.sample文件。这行得通吗?
    【解决方案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++ 将能够根据文件扩展名自动检测正确的语言。

    【讨论】:

    • 你确定这是跨 Windows 吗?有没有更好的办法?
    • 关于跨Windows,是的。至少从 Windows 95 开始,Windows 就一直在存储这样的文件关联。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      最后是我自己写的:

      1. 你需要 Python 插件

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

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

      
      #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])
      
      

      【讨论】:

      • 有java方法吗?
      【解决方案5】:

      你可以尝试一些 npp 脚本,

      python

      lua

      和/或破解宏。您可以使脚本有条件地启动,检查您的特殊字符串并为您选择语言。

      【讨论】:

        猜你喜欢
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 2012-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-30
        • 2011-09-03
        相关资源
        最近更新 更多