2009-12-09 1 views
4

Я сохраняю образцы кода, которые я нахожу полезными в качестве текстовых файлов на своем компьютере. Я храню их как файлы txt в отличие от языка, на котором они написаны, так что они будут открываться в Notepad ++ вместо редактора (т. Е. Я не хочу, чтобы мои примеры C++ открывались в среде IDE, а именно «Блокнот»).Notepad ++: Выделение выделенного синтаксиса для файлов .txt

Возможно ли, что Notepad ++ применит соответствующую подсветку синтаксиса к текстовому файлу, прочитав специальный код в самом текстовом файле?

Например, если у меня были некоторые SQL, первая строка текстового файла может читать, как это:

##Language=SQL 

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

Спасибо заранее. Я понимаю, что могу просто выбрать язык после открытия файла (например, язык> SQL), но было бы гораздо удобнее, если бы оно могло сделать это автоматически.

ответ

2

Я закончил тем, что писал его сам:

  1. Вам нужен плагин Python

  2. Добавьте приведенный ниже код в файл startup.py

  3. Переключите ваш Python инициализации установки от " LAZY "на" ATSTARTUP "

  4. Поэтапное решение, см. 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]) 

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 ++ будет способный автоматически определять правильный язык на основе расширения файла.

+0

Вы уверены, что это кросс-Windows? Есть ли способ лучше? – Pacerier

+0

Что касается кросс-Windows, да. Windows хранит такие ассоциации файлов, как это, по крайней мере, с Windows 95. – Seth

3

Нет, это невозможно. Вы можете выбрать его вручную или использовать специальные расширения типов файлов, которые затем ассоциируете с Notepad ++ и сообщать ему, чтобы выделить файлы в качестве соответствующего языка.

Например, используйте файлы .txtsql для файлов SQL, .txtcpp для C++ и т. Д.

+0

Спасибо, я сейчас соглашусь. Я надеялся, что может быть Macro или плагин, но пока ничего не нашел. –

+0

@jj., Btw, почему бы вам просто не изменить Windows, чтобы открыть '.sql'' .cpp' и т. Д. Напрямую с помощью notepad ++? – Pacerier

+0

@Pacerier Я все еще хочу файлы .sql .cpp для открытия в их соответствующей среде IDE. Мои файлы примеров кода: .txt –

2

Выбор вручную - это намного проще. Храните все файлы в формате .txt (независимо от java или C или C++). Откройте файл в Notepad ++ и выберите соответствующий язык в меню. например Язык -> Java.

1

Вы могли бы попробовать NPP был,

python

lua

и/или взлома макросов. вы можете заставить сценарий запускаться условно, проверить свою специальную строку и выбрать язык для вас.