Я хочу запустить линтер в моем исходном коде, когда я сохраняю файл (CTRL-S). Можно ли выполнить внешнюю команду для файла при его сохранении?
1 ответ
Насколько я знаю, в самом строгом смысле, нет прямой возможности запустить программу сразу после сохранения. Тем не менее, вполне вероятно, что вы можете получить (функционально) похожее поведение при нажатии Ctrl+S с шагами ниже ...
Сохранить и выполнить с помощью Ctrl + S
Установите NppExec
Обычно обычный макрос Notepad++ в сочетании с элементом из меню « Выполнить» , вероятно, будет самым простым путем к желаемому поведению. Однако команды из меню « Выполнить» в настоящее время, по-видимому, не разрешены как действия макроса по умолчанию.
Чтобы обойти эту проблему, нам нужен плагин под названием NppExec
. Этот плагин позволяет нам писать умеренно улучшенные макросы (командные сценарии) для запуска программ из Notepad++. В частности, это позволяет нам совмещать сохранение документа и запуск программы (что, как отмечалось, обычно невозможно).
Чтобы установить NppExec:
Откройте Диспетчер плагинов (Плагины → Диспетчер плагинов → Показать диспетчер плагинов).
Найдите
NppExec
в списке плагинов и отметьте его.Нажмите
Install
.
После установки вам нужно будет перезагрузить Notepad++, как указано.
Создать командный скрипт
После перезапуска Notepad++ откройте окно « Плагины» → « NppExec» → « Выполнить ...» ( F6 ). В текстовом поле разместите команды, которые вы хотите выполнить (по порядку), в отдельных строках:
NPP_SAVE
# ... Another command here ...
# ... Another command here ...
Если не считать небольшого отступления, мне не совсем ясно, что вы хотите сделать с файлом (в отношении процесса линтинга), поэтому мои извинения за то, что приведенный выше пример не является более полным.
Обратите внимание, что каждый # ... Another command here ...
просто заполнитель для этого примера. Важно отметить, что знаки #
самом деле не представляют комментарии в NppExec ... это всего лишь мои сокращения. знак равно
Доступные команды
Учитывая, что мы знаем, что мы хотим сохранить в первую очередь, мы можем использовать NPP_SAVE
для запуска командного сценария. NPP_SAVE
- это специфичная для NppExec
команда, которая сообщает Notepad++ сохранить текущий документ.
В целом, для оставшихся команд вы, скорее всего, будете либо вызывать эти команды напрямую (при условии, что они являются командами NppExec
или элементами, зарегистрированными в командной строке, вывод которых не имеет большого значения), либо использовать, например, NPP_RUN cmd /k somecommand.exe
(или другие варианты NPP_RUN cmd
) для создания нового окна cmd
(что часто может быть предпочтительнее).
Все, что можно запустить из командной строки (включая командные файлы и сценарии), вероятно, является приемлемым вариантом для ваших команд. Также доступны переменные среды Notepad++. Наиболее распространенный, который вы, вероятно, будете использовать, - это $(FULL_CURRENT_PATH)
(лучше всего ссылаться на него в двойных кавычках, т. "$(FULL_CURRENT_PATH)"
), который дает полный путь Windows к сохраненной версии вашего текущего документа.
Стоит отметить , что, как Run
в нормальном Run ... диалоге OK
в Выполнить ... окно будет выполнять ваши команды сразу. Это позволяет вам проверить их функциональность перед сохранением. Аналогично, поле Command(s)
является постоянным между запусками.
Если вы довольны командным сценарием, вам нужно будет выбрать Save...
, дать сценарию соответствующее имя и снова выбрать Save
чтобы сохранить его для дальнейшего использования. Закройте окно Выполнить ..., когда закончите.
Добавление командного сценария в меню
Теперь мы можем добавить наш командный скрипт NppExec
в меню Notepad++, чтобы ему можно было назначить ярлык:
Перейдите в Плагины → NppExec → Дополнительные параметры ....
Выберите командный сценарий в раскрывающемся меню «
Associated script:
в левом нижнем углу».Нажмите «
Add/Modify
чтобы добавить его в поле «Menu items
расположенное выше.При желании отметьте флажок «
Place to the Macros submenu
чтобы добавить командный сценарий в главное меню макросов. В противном случае он появится как опция в разделе « Плагины» → « NppExec».Нажмите
OK
чтобы закончить.
Перезапустите Notepad++, как указано, и убедитесь, что командный сценарий теперь отображается в виде пункта меню в нижней части меню « Макрос» или « Подключаемые модули» → NppExec.
Добавление горячих клавиш в командный скрипт
Наконец, чтобы переназначить Ctrl+S:
Откройте Настройки → Ярлык ярлыков ....
На вкладке « Главное меню » выделите пункт "Сохранить". Нажмите «
Clear
в нижней части окна, чтобы очистить настройки горячей клавиши для этого элемента ( Ctrl+S ).Выберите вкладку « Команды плагинов ». Прокрутите вниз и выделите запись для командного сценария
NppExec
(идентифицируемого по имени). Вероятно, это будет последний элемент в блоке для записейNppExec.dll
.Нажмите
Modify
и установите соответствующие параметры горячих клавиш (отметьтеCtrl
и выберитеS
из выпадающего списка).Нажмите «
OK
чтобы сохранить новые настройки ярлыков, иClose
« Ярлык ярлыков» .
Теперь ваш командный скрипт должен быть запущен с помощью Ctrl+S (перезапуск не требуется).
Следует отметить, что независимо от назначенной комбинации горячих клавиш обычная версия Save
прежнему будет связана с элементом меню File → Save и значком панели инструментов (одна синяя дискета).