Как запустить HTML-файл из Notepad ++?

7

Я хотел бы запустить страницу HTML, поэтому я настроил Execute / F5команду следующим образом:

chrome.exe http://localhost:8080/$(FILE_NAME)

Это работает, когда файл HTML находится в корне моей рабочей области (потому что мой HTTP-сервер HTTP настроен для этого). Но это не работает, когда файл находится в подпапке.

Существует ли предопределенная переменная (т. Е. $(RELATIVE_PATH)), Которую можно использовать для получения пути к файлу относительно каталога Workspace?

Заранее спасибо за вашу помощь.

сверхкоротких
источник
3
Кто Run-> Launch in Chromeне поможет?
Бурги
4
Если вы используете PHP, вы можете использовать http://localhost:8080/redirect.php?file=/$(FULL_CURRENT_PATH)где redirect.phpснимает лишнюю часть. Смотрите статью Настройка Notepad ++ для запуска php на localhost .
harrymc
1
Аналогичным ответом будет использование файла .bat для манипулирования строками и вызова Chrome. Просто сделать, если вы заинтересованы.
harrymc
@Supersharp Ctrl + Shift + Alt + R
отменить

Ответы:

1

Начиная с текущей версии Notepad ++ 6.9.1, проблема с файлами в пути к подпапкам на веб-сервере еще не устранена. Единственная переменная для пути к файлам $(FULL_CURRENT_PATH).

Проверьте: Настройка Notepad ++ для запуска php на localhost .

Возможно, эта проблема будет исправлена ​​в следующих версиях Notepad ++.

iSR5
источник
@Supersharp не читал раздел комментариев, для переменных среды проверьте здесь: docs.notepad-plus-plus.org/index.php/Defining_User_Commands
iSR5
1
@Supersharp также это полезно: docs.notepad-plus-plus.org/index.php/External_Programs
iSR5
5

Вместо того, чтобы использовать Chrome напрямую, вы можете использовать файл .bat.

Ниже приведена одна версия такого файла .bat, который должен быть выполнен в Notepadd ++, например:

"path\to\file.bat" "$(FULL_CURRENT_PATH)"

Для Windows, где находится корень документа C:\inetpub\wwwroot, файл .bat:

@echo off
set "param=%~1"
set "url=http://localhost/%param:C:\inetpub\wwwroot\=%"
start "" chrome.exe "%url%"

Общий синтаксис DOS, используемый выше для замены строк в переменной:

"%variable-name:search-string=replacement-string%"

где в нашем случае replacement-stringпусто.

Этот простой .bat файл может быть легко улучшен, чтобы принимать строку в C:\inetpub\wwwroot\качестве второго параметра, и многое другое.

Пакетный файл может вызвать мгновенное появление черного окна DOS, которое исчезает сразу после запуска Chrome. Если это все еще слишком раздражает, см. Этот ответ .

harrymc
источник
1

Python Solution

С помощью плагинов Np ++ можно совершить даже чудеса. Я написал простой Np ++ Python Script, который обеспечивает именно эту функциональность. Это решение требует только Notepad ++ и подключаемого модуля PythonScript.

  1. Установите Python Script из плагинов> Менеджер плагинов
  2. Плагины> Python Script> Новый скрипт
  3. Назовите его «OpenInBrowser.py» (например) и вставьте скрипт: http://pastebin.com/wS4jThcp
  4. В этом сценарии не забудьте настроить свой browserExeFullPath , browserUrl и rootDir вашей веб- страницы (в котором будет находиться верхний уровень index.html).
  5. Плагины> Python Script> Configuration и добавьте свой пользовательский скрипт в меню (список слева)
  6. Перезапустите Notepad ++, «Настройки»> «Ярлык ярлыков»> «Команды плагина» и сопоставьте ваш скрипт с ключом, например, F9. Теперь нажатие этой клавиши откроет ваш активный документ в браузере. Никаких внешних решений не требуется.
pKami
источник
Я не смог установить плагин "Python Script" на АЭС 6.9.1.
Супер-острый
В чем именно была проблема? У меня не было проблем с установкой на 6.9.1 с помощью диспетчера плагинов - только что проверил. Кроме того, вы можете попробовать установить его вручную из npppythonscript.sourceforge.net/download.shtml
pKami,
1
Я потерпел неудачу 4 раза во время загрузки. Я не буду следовать этому решению, потому что я не хочу устанавливать еще один интерпретатор (уже содержит JVM, CLR, Node, оболочку Windows ...), но я проголосовал, потому что это может быть предпочтительным решением для пользователей Pyhton.
Суперяркий
0

Решение Node.js

Основываясь на первом комментарии @ harrymc, я перенес решение PHP на мой Node- сервер.

1 ° в блокноте ++ :

Измените <Command>содержимое в файле shortcuts.xml(вы можете найти его в папке %appdata%/Notepad++), например:

chrome http://localhost:8080/npp?path=$(FULL_CURRENT_PATH) 

2 ° в Node.js :

Добавьте маршрут в скрипт сервера ( server.js) для обработки HTTP-запроса GET:

//redirection for Notepad++
app.get( '/npp', function ( req, res ) 
{
    res.redirect( req.query.path.substr( __dirname.length + 8 ) )
} )

где:

  • appмой экспресс- компонент ( app = express()),
  • +8нужен, потому что мои веб-страницы находятся в подпапках /public/.
сверхкоротких
источник