(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

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

Источник: habrahabr
Placido

Поскольку я не очень опытный разработчик - так вышло, что в веб я пришел недавно - по ходу написания кода мне часто приходится обращаться к официальной документации 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+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 соответственно.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 20.07.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
TeeChart Pro VCL/FMX with source code single license
Business Studio 4.2 Enterprise. Конкурентная лицензия + Business Studio Portal 4.2. Пользовательская именная лицензия.
FastReport.Desktop
ABBYY Lingvo x6 Европейская Домашняя версия, электронный ключ
Quest Software. Toad for DBA Suite for Oracle
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Безопасность компьютерных сетей и защита информации
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Программирование в AutoCAD
СУБД Oracle "с нуля"
Все о PHP и даже больше
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100