
我想運行一個 HTML 頁面,因此我配置了Execute / F5
以下命令:
chrome.exe http://localhost:8080/$(FILE_NAME)
當 HTML 檔案位於我的工作區的根目錄中時它可以工作(因為我的 HTTP Web 伺服器已設定為這樣做)。但當文件位於子資料夾中時,它不起作用。
是否有預定義變數(即$(RELATIVE_PATH)
)可用於取得相對於工作空間目錄的檔案路徑?
預先感謝您的幫忙。
答案1
截至目前版本的 Notepad++ 6.9.1,Web 伺服器中子資料夾路徑中的檔案問題尚未修復。檔案路徑的唯一變數是$(FULL_CURRENT_PATH)
.
也許這個問題會在 Notepad++ 的未來版本中解決。
答案2
您可以使用 .bat 文件,而不是直接使用 Chrome。
下面是此類 .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 啟動後立即消失。如果還是太煩人,請參閱這個答案。
答案3
Python是解決方案
使用 Np++ 插件甚至可以實現奇蹟。我編寫了一個簡單的 Np++ Python 腳本來實作此功能。這個解決方案只需要 Notepad++ 和 PythonScript 插件。
- 從插件 > 插件管理器安裝 Python 腳本
- 插件 > Python 腳本 > 新腳本
- 將其命名為“OpenInBrowser.py”(例如)並貼上腳本:http://pastebin.com/wS4jThcp
- 在腳本中,記得配置你的browserExe完整路徑,瀏覽器網址和你的網頁的根目錄(頂級index.html 將位於其下)。
- 外掛程式 > Python 腳本 > 配置並將您的使用者腳本新增至選單(左側清單)
- 重新啟動 Notepad++,設定 > 快捷方式映射器 > 插件命令並將腳本映射到某個鍵,例如 F9。現在按下該鍵將在瀏覽器中開啟您的活動文件。無需外部解決方案。
答案4
Node.js 解決方案
根據 @harrymc 的第一條評論,我將 PHP 解決方法移植到我的節點伺服器.
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/
。