Запуск внешних приложений из Notepad++. NppExec: ускоряем поиск в Интернете и не только…

в 13:48, , рубрики: mysql, notepad++, php, search, Веб-разработка, разработка, метки: , , ,

Поскольку я не очень опытный разработчик — так вышло, что в веб я пришел недавно — по ходу написания кода мне часто приходится обращаться к официальной документации PHP и MySQL, а также искать во время работы с текстами определенную информацию еще на паре сайтов, не связанных с IT, но связанных с другой моей работой.

Notepad++ и поиск в Интернете

Раньше в случае возникновения вопроса мне нужно было выполнить следующие действия:

  1. Выделить фрагмент текста (или кода);
  2. Скопировать его в буфер обмена;
  3. Перейти в браузер;
  4. Вставить текст из буфера обмена в строку поиска (где предварительно должно уже было быть введено site: адрес сайта или открыт требуемый сайт);
  5. Нажать кнопку искать (ввод)*.

С помощью дополнения NppExec это можно сделать в несколько раз быстрее. Предварительно, конечно, NppExec необходимо настроить.

Установка NppExec

Плагины->Plugin Manager->Show Plugin Manager->NppExec->Install. Перезапускаем Notepad++.

Настройка

Нажимаем F6.

В поле Command(s) вводим следующее:

C:...chrome.exe php.net/manual-lookup.php?function="$(CURRENT_WORD)"&lang=ru

(вместо троеточия вставляем полный путь к exe-шнику требуемого браузера).

image

Сохраняем: Save… – php_search

image

image

Аналогично настраиваем поиск по сайту MySQL. Поскольку я так и не смог разобраться с поиском на сайте mysql.com — при попытке найти что-либо через строку поиска на dev.mysql.com почему-то происходит перенаправление на search.oracle.com (а там сам черт ногу сломит) — ищем с помощью Google:

Нажимаем F6.

"C:...chrome.exe" http://www.google.com/search?q="site:dev.mysql.com $(CURRENT_WORD)"

Сохраняем: Save… – mysql_search.

image

Использование

Теперь все, что нужно сделать — выделить фразу или слово (например, имя функции) — Shift-Strl+rightArrow — и нажать Ctrl-F6. Браузер откроется на необходимой странице и отправит GET-запрос с выделенным словом в строке поиска (первый вызов Ctrl-F6 аналогичен F6 — необходимо ввести или выбрать сохраненную команду, в нашем случае – php_search или mysql_search).

В моем примере я использовал переменную окружения (переменная среды, англ. environment variables) CURRENT_WORD, но возможности дополнения NppExec гораздо шире, чем просто ускорение поиска в Интернете. C помощью этого плагина можно запускать практически любые внешние приложения и передавать им обширный ряд переменных – как собственных, так и системных переменных Windows. Это подробно описано в статье How to Run an external program from Notepad++ на сайте sourceforge.net, перевод которой я представляю ниже.

Как запустить внешнюю программу из Notepad++

Предположим, вам необходимо запустить внешнее приложение (например, компилятор, интерпретатор или веб-браузер) из Notepad++ (пункт меню «Запуск»), передав текущий документ в качестве аргумента. Чтобы это сделать, вам придется использовать переменные окружения. Плагин NppExec предоставляет в этом отношении большую гибкость.

Переменные окружения файлового уровня

Использование переменной окружения:

$(ПЕРЕМЕННАЯ_ОКРУЖЕНИЯ)

Например, текущий файл, который вы редактируете в Notepad++ — «E:my Webmainwelcome.html».

Ниже приведены некоторые переменные окружения, содержащие информацию о текущей сессии:

FULL_CURRENT_PATH — «E:my Webmainwelcome.html».
CURRENT_DIRECTORY — «E:my Webmain».
FILE_NAME — «welcome.html».
NAME_PART — «welcome».
EXT_PART — «html».
SYS.<переменная> — имя системной переменной окружения, например, $(SYS.PATH).

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

"$(ПЕРЕМЕННАЯ_ОКРУЖЕНИЯ)"

Примеры

firefox "$(FULL_CURRENT_PATH)"
iexplore "$(FULL_CURRENT_PATH)"

Эти две пользовательские команды также включены в Notepad++ 3.0 и в более поздние версии. Их можно запустить, нажав Ctrl+Alt+Shift+X и Ctrl+Alt+Shift+I соответственно.

Переменные окружения уровня документа

Существуют следующие переменные:

CURRENT_WORD — содержит слово (слова), которое в текущий момент выделено в Notepad++.
CURRENT_LINE — содержит номер строки Notepad++, на которой в данный момент находится курсор.
CURRENT_COLUMN — содержит номер колонки Notepad++, на которой в данный момент находится курсор.
NPP_DIRECTORY — содержит абсолютный путь к системной директории Notepad++.

Дополнительные переменные, доступные с помощью плагина NppExec:

PLUGINS_CONFIG_DIR — полный путь к конфигурационной директории, в которой находятся файлы плагинов.
#N — полный путь к n-ному открытому документу (n = 1, 2, 3 ...).
#0 — Полный путь к файлу notepad++.exe.
LEFT_VIEW_FILE — путь к файлу, открытому в главном (левом) окне Notepad++.
RIGHT_VIEW_FILE — путь к файлу, открытому в дополнительном (правом) окне Notepad++.
Если вы знаете, в какой директории находится плагин, вы можете вызвать любую функцию этого плагина, передав в rundll.exe имя плагина, имя функции и, если требуется, аргументы. Или же выгрузить плагин командой regsvr /u.

Примеры

http://www.php.net/%20$(CURRENT_WORD)
http://www.google.com/search?q=$(CURRENT_WORD)
http://en.wikipedia.org/wiki/Special:Search?search=$(CURRENT_WORD)
$(NPP_DIRECTORY)notepad++.exe $(CURRENT_WORD)

В примерах 1-3 мы передаем в качестве аргумента URL + выделенное в данный момент слово браузеру, установленному по умолчанию, с целью поиска слова в Интернете.
Четвертый пример полезен в том случае, если вы хотите открыть файл из текущего документа.

Предположим, что у нас есть файл, содержащий следующую запись:

include("../myFuncs.php");

Если выделить ../myFuncs.php и нажать сочетание клавиш, которому вы назначите эту команду, то в Notepad++ откроется файл myFuncs.php, если, конечно, он существует и находится по указанному пути.
Переменная CURRENT_WORD позволяет удобно конфигурировать внешние команды.

Запуск команды

Когда вы используете NppExec для запуска команды, перед ее запуском устанавливаются и становятся доступными для использования следующие переменные:

CWD — текущая рабочая директория NppExec (используйте «cd» для ее изменения).
ARGC — количество аргументов, переданных команде NPP_EXEC.
ARGV — все аргументы, переданные команде NPP_EXEC, которые следуют после имени скрипта.
ARGV[0] — имя скрипта — первый параметр команды NPP_EXEC.
ARGV[n] — n-ный аргумент (1, 2, 3...)
RARGV — все аргументы в обратном порядке (за исключением имени скрипта).
RARGV[n] — n-ный аргумент с конца (n, n-1, n-2, n-3...).
INPUT — это значение задается командой 'inputbox'.
INPUT[n] — n-ное поле переменной $(INPUT).

Если внешний процесс «знает» о NppExec, то может установить некоторые переменные для использования в NppExec (с версии 0.3.1):

OUTPUT — это значение может быть задано дочерним процессом (подробнее — в описании команды npe_console v+).
OUTPUT1 — первая строка в $(OUTPUT).
OUTPUTL — последняя строка в $(OUTPUT).

Нужно добавить, что возможность быстрого поиска в google.com и en.wikipedia.org встроена в Notepad++ по умолчанию. Нужно выделить необходимую фразу и нажать Alt-F2 и Alt-F7 соответственно.

Автор: Placido

* - обязательные к заполнению поля