Я хотел бы иметь возможность открыть файл хостов Windows в Notepad++ и автоматически связать его с языком программирования, таким как Perl. К сожалению, так как файл hosts не имеет расширения, я не уверен, как это сделать.

2 ответа2

2

Если файл не имеет расширения, он не может быть настроен на открытие с помощью определенного приложения, насколько мне известно, однако, как только вы открыли файл в notepad++ ранее, вы можете открыть его обратно, и он покажет документ в "Открыть последние файлы" на вкладке файлов. Обычно для меня это самый простой способ открывать файлы без таких расширений.

0

Я столкнулся с этой самой проблемой несколько лет назад и в итоге получил что-то выполнимое:

  • Сначала я взял язык пользователя 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. Кредит в основном идет тому, кто написал это в то время.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .