我想要运行一个 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
- 在脚本中,记得配置你的browserExeFullPath,浏览器网址以及你的网页根目录(顶层 index.html 位于其下)。
- 插件 > Python 脚本 > 配置并将您的用户脚本添加到菜单(左侧列表)
- 重新启动 Notepad++,设置 > 快捷键映射器 > 插件命令并将脚本映射到一个键,例如 F9。现在按下该键将在浏览器中打开您的活动文档。无需外部解决方案。
答案4
Node.js 解决方案
根据@harrymc 的第一条评论,我将 PHP 解决方法移植到我的节点服务器。
1° 在 Notepad++ 中:
更改<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/
。