|
|
|||||||||||||||||||||||||||||
|
Запуск внешних приложений из Notepad++. NppExec: ускоряем поиск в Интернете и не только…Источник: habrahabr Placido
Поскольку я не очень опытный разработчик - так вышло, что в веб я пришел недавно - по ходу написания кода мне часто приходится обращаться к официальной документации PHP и MySQL, а также искать во время работы с текстами определенную информацию еще на паре сайтов, не связанных с IT, но связанных с другой моей работой. Notepad++ и поиск в ИнтернетеРаньше в случае возникновения вопроса мне нужно было выполнить следующие действия:
С помощью дополнения 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-шнику требуемого браузера). Сохраняем: Save… - php_search Аналогично настраиваем поиск по сайту 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. ИспользованиеТеперь все, что нужно сделать - выделить фразу или слово (например, имя функции) - Shift+Ctrl+rightArrow - и нажать Ctrl+F6. Браузер откроется на необходимой странице и отправит GET-запрос с выделенным словом в строке поиска (первый вызов Ctrl+F6 аналогичен F6 - необходимо ввести или выбрать сохраненную команду, в нашем случае - php_search или mysql_search). В моем примере я использовал переменную окружения (переменная среды, англ. environment variable) CURRENT_WORD, но возможности дополнения NppExec гораздо шире, чем просто ускорение поиска в Интернете. C помощью этого плагина можно запускать практически любые внешние приложения и передавать им обширный ряд переменных - как собственных, так и системных переменных Windows. Это подробно описано в статье How to Run an external program from Notepad++ на сайте sourceforge.net, перевод которой я представляю ниже. Как запустить внешнюю программу из Notepad++Предположим, вам необходимо запустить внешнее приложение (например, компилятор, интерпретатор или веб-браузер) из Notepad++ (пункт меню "Запуск"), передав текущий документ в качестве аргумента. Чтобы это сделать, вам придется использовать переменные окружения. Плагин NppExec предоставляет в этом отношении большую гибкость. Переменные окружения файлового уровняИспользование переменной окружения: $(ПЕРЕМЕННАЯ_ОКРУЖЕНИЯ) Например, текущий файл, который вы редактируете в Notepad++ - "E:\my Web\main\welcome.html". Ниже приведены некоторые переменные окружения, содержащие информацию о текущей сессии: FULL_CURRENT_PATH - "E:\my Web\main\welcome.html". CURRENT_DIRECTORY - "E:\my Web\main\". 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-F3 соответственно. Ссылки по теме
|
|