如何从Notepad ++运行HTML文件?


7

我想运行一个HTML页面,所以我将Execute / F5命令配置如下:

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

当HTML文件位于我的工作区的根目录中时,它可以工作(因为我的HTTP Web服务器已设置为这样做)。但是,当文件位于子文件夹中时,它将不起作用。

是否有预定义的变量(即$(RELATIVE_PATH))可用于获取相对于Workspace目录的文件路径?

预先感谢您的帮助。


3
难道Run- > Launch in Chrome不帮你?
布尔吉

4
如果您使用的是PHP,则可以使用http://localhost:8080/redirect.php?file=/$(FULL_CURRENT_PATH)where redirect.php除去多余的部分。请参阅文章配置Notepad ++在本地主机上运行php
哈里姆克(Harrymc)'16

1
类似的答案是使用.bat文件进行字符串操作并调用Chrome。如果您有兴趣,这很容易做。
哈里·麦克(Harrymc)'16

@Supersharp Ctrl + Shift + Alt + R
撤消

Answers:


1

从当前版本的Notepad ++ 6.9.1开始,尚未解决Web服务器中子文件夹路径中的文件的问题。文件路径的唯一变量是$(FULL_CURRENT_PATH)

检查:将Notepad ++配置为在localhost上运行php

也许此问题将在Notepad ++的将来版本中得到解决。


@Supersharp没有阅读评论部分,有关环境变量的信息,请参见
iSR5,2016年


5

可以直接使用.bat文件来代替直接使用Chrome。

下面是应在Notepadd ++中执行的此类.bat文件的一种版本,如下所示:

"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后立即消失。如果仍然很烦人,请参阅此答案


1

Python解决方案

使用Np ++插件甚至可以实现奇迹。我编写了一个简单的Np ++ Python脚本,即可实现此功能。此解决方案仅需要Notepad ++和PythonScript插件。

  1. 从插件>插件管理器安装Python脚本
  2. 插件> Python脚本>新脚本
  3. 将其命名为“ OpenInBrowser.py”(例如)并粘贴脚本:http ://pastebin.com/wS4jThcp
  4. 在脚本中,请记住配置browserExeFullPathbrowserUrl和你的网页的ROOTDIR(下其顶层的index.html将设)。
  5. 插件> Python脚本>配置,然后将用户脚本添加到菜单(左侧列表)
  6. 重新启动Notepad ++,依次单击“设置”>“快捷方式映射器”>“插件”命令,然后将脚本映射到某个键,例如F9。现在按该键将在浏览器中打开活动文档。无需外部解决方案。

我无法在NPP 6.9.1上安装“ Python脚本”插件。
Supersharp

到底是什么问题?使用插件管理器在6.9.1上安装它没有问题-刚刚检查过。或者,您可以尝试从npppythonscript.sourceforge.net/download.shtml
pKami '16

1
下载期间我失败了4次。我不会遵循该解决方案,因为我不想安装另一个解释器(已经安装了JVM,CLR,Node,Windows的shell ...),但是我赞成,因为它可能是Pyhton用户的首选解决方案。
Supersharp

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是我的Express组件(app = express()),
  • +8因为我的网页位于子文件夹中,所以是必需的/public/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.