Я хотел бы иметь возможность открыть файл хостов Windows в Notepad++ и автоматически связать его с языком программирования, таким как Perl. К сожалению, так как файл hosts не имеет расширения, я не уверен, как это сделать.
2 ответа
Если файл не имеет расширения, он не может быть настроен на открытие с помощью определенного приложения, насколько мне известно, однако, как только вы открыли файл в notepad++ ранее, вы можете открыть его обратно, и он покажет документ в "Открыть последние файлы" на вкладке файлов. Обычно для меня это самый простой способ открывать файлы без таких расширений.
Я столкнулся с этой самой проблемой несколько лет назад и в итоге получил что-то выполнимое:
Сначала я взял язык пользователя Hosts (он отличается от того, который я использовал, но должен работать). Добавьте сценарий в файл userDefineLang.xml либо в «% appdata%/Roaming/Notepad++», либо в «Program Files (x86)/Notepad++». Это позволит установить язык для подсветки синтаксиса хост-файлов вручную.
Затем получите и настройте расширение PythonScript для Notepad++ (также доступно через диспетчер плагинов). После установки перейдите в раздел "Плагины" и выберите «Конфигурация ...». В нижней части раскрывающегося списка «Инициализация:» выберите "ATSTARTUP", чтобы он автоматически запускал сценарий запуска при открытии Notepad++.
Затем я получил расширение Modeline Parser . Загрузите его и следуйте инструкциям в README. По сути, скопируйте содержимое в папку плагинов (где бы ни находился PythonScript). Затем он изменяет «startup.py» в каталоге "scripts" PythonScript и добавляет следующие строки в его конец:
import ModelineParser_dll import ModelineFoldmethod # If you want to use the example option to fold based on indent import ModelineLanguageDetectors # If you want to use the example language detectors ModelineParser_dll.modeline_start()
Это включает и запускает парсер Modeline.
Наконец, вам нужно сообщить Modeline Parser, как выглядит файл hosts и что с ним делать. Для этого перейдите в каталог "lib" PythonScripts и отредактируйте «ModelineLanguageDetectors.py». После записи по умолчанию "makefile" добавьте что-то очень похожее на ваш файл hosts:
ModelineParser_dll.modeline_add_preparse(lambda settings, name, path, text: fnmatch.fnmatch(name, 'hosts*') and settings.__setitem__('language','hosts') )
Затем в конце этого файла свяжите ваш файл hosts с языком пользователя hosts, который мы добавили на первом шаге. Добавьте запись для языка в словарь в параметрах вызова метода modeline_add_languages:
'hosts': 'Hosts',
После этого закройте и перезапустите Notepad++, если он открыт. Снова откройте его и попробуйте открыть файл hosts. Он должен автоматически применять подсветку синтаксиса. Я нашел что-то в соответствии с этими инструкциями несколько лет назад, но больше не могу найти это через Google. Кредит в основном идет тому, кто написал это в то время.