我保留了我认为在我的计算机上作为文本文件有用的代码示例。我将它们存储为txt文件而不是它们所用的语言,因此它们将在Notepad ++而不是编辑器中打开(即我不希望我的c ++示例在IDE中打开,只是在记事本中打开)。
有没有办法让Notepad ++通过阅读文本文件中的特殊代码对文本文件应用适当的语法高亮?
例如,如果我有一些sql,文本文件的第一行可以这样读:
##Language=SQL
... my sql code properly highlighted as sql ...
提前致谢。我意识到我可以在打开文件后选择语言(即语言> SQL),但如果可以自动执行它会更方便。
答案 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)
我自己写完了:
您需要Python插件
将以下代码添加到您的startup.py文件
将Python初始化设置从“LAZY”切换为“ATSTARTUP”
有关分步解决方案,请参阅my blog。
#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)