Есть похожая команда, которую я использую, чтобы открыть текущее выбранное слово в командной строке:
cmd /D "%windir%/system32" /K ""$(CURRENT_WORD)""
Есть ли команда для открытия текущей строки без выделения текста в этой строке вручную?
Есть похожая команда, которую я использую, чтобы открыть текущее выбранное слово в командной строке:
cmd /D "%windir%/system32" /K ""$(CURRENT_WORD)""
Есть ли команда для открытия текущей строки без выделения текста в этой строке вручную?
Ни в разделе Как запустить внешнюю программу из Notepad++, ни в документации к плагину NppExec не упоминается переменная окружения, содержащая текущую строку.
Точно так же макросы могут только обрабатывать сообщения Scintilla (список), искать и заменять записи и некоторые определенные в Notepad++ команды (недокументированные?), Так что это невозможно сделать с помощью макросов.
Помимо написания собственного плагина, единственный способ, которым я знаю, как это сделать, - использовать внешнюю программу. Скрипт AutoHotkey будет делать то, что вы хотите.
^F5::
WinGetActiveTitle, Title
if RegExMatch(Title, "- Notepad\+\+$")
{
SendPlay {Home}+{End}{F5}
SendPlay cmd /D "%windir%/system32" /K "$(CURRENT_WORD)"
SendPlay {Enter}
}
else
SendPlay ^{F5}
return
Если Notepad++ является активным окном, комбинация клавиш Ctrl + F5 выберет текущую строку и выполнит внешнюю команду
cmd /D "% windir% /system32" /K "" $(CURRENT_WORD)""
$(CURRENT_WORD)
теперь содержит всю строку, так как она была выбрана. Единственным недостатком является то, что вы потеряете текущую позицию курсора, так как скрипт оставит текущую выбранную строку.
Если Notepad++ не является активным окном, комбинация клавиш Ctrl + F5 будет вести себя нормально.
Загрузите и установите последнюю версию.
Сохраните приведенный выше скрипт как npp_runline.ahk
, используя ваш любимый текстовый редактор.
Дважды щелкните файл, чтобы запустить скрипт.
При желании скопируйте скрипт (или ссылку на него) в папку « Startup
».
^F5::
указывает используемую горячую клавишу (Ctrl + F5).
WinGetActiveTitle, Title
хранит заголовок активного окна в переменной Title
.
RegExMatch(Title, "- Notepad\+\+$")
возвращает позицию крайнего левого вхождения регулярного выражения - Notepad\+\+$
(где \+
- литерал +
и $
в конце строки) в Title
или ноль, если совпадений нет.
Если есть совпадение, блок после if...
выполняется:
SendPlay {Home}+{End}{F5}
имитирует нажатие Home и Shift + End (выбор текущей строки без пробела), а затем F5 (открытие диалога Run...
).
SendPlay cmd /D "%windir%/system32" /K "$(CURRENT_WORD)"
вводит именно это в диалог " Run...
.
SendPlay {Enter}
имитирует нажатие Enter (завершение диалога Run...
).
Если совпадения нет, то блок , следующий else
запускается на выполнение:
SendPlay ^{F5}
имитирует нажатие клавиш Ctrl + F5 (отступление, если нам нужен ярлык вне Notepad ++).return
прекращает выполнение скрипта в текущей точке.
Смотрите также: