首先说下,我的是Sublime Text 3,win10。
ST有个插件View In Browser可以在浏览器里打开文件,但经过试用,报Encoding错误,其Github的issues里也有人提出了此bug,但未解决。然后我就找到了这么个办法。
1、点击菜单Tools -> New Plugin…,在创建好的py模板文件输入下列内容:
import sublime, sublime_plugin
import webbrowser
class OpenBrowser(sublime_plugin.TextCommand):
def run(self, edit):
url = self.view.file_name()
webbrowser.open(url, 2)
这里讲解下webbrowser.open(url, new=0, autoraise=True)
的用法。
第一个参数就是文件路径;
第二个参数为0表示在同一个浏览器窗口打开,为1表示在新的浏览器窗口打开,为2表示在新的标签页打开;
第三个参数为true表示会自动打开浏览器,实测True和False无差别。
浏览器是在后台打开的,不会覆盖ST。
2、接下来保存,就是默认弹出来的 Packages/User目录,文件名自定义,比如open_browser
3、设置快捷键,点菜单Preferences -> key Bindings - User(个人快捷键配置),输入下列内容:
[{ "keys": ["ctrl+f5"], "command": "open_browser" }]
keys里面的内容可以自定义,不和既有的快捷键冲突就好,command填的就是上一步保存的文件名。
这样就可以在通过快捷键ctrl+f5
在默认浏览器里打开当前文件了。
那么如何在非默认浏览器里打开当前文件呢?
- python官方提到了一个
BROWSER
的环境变量,实际我怎么设置也没有用,通过os.environ["BROWSER"]方法也无效。。。 - 通过webbrowser.get方法直接调用命令打开指定浏览器:
webbrowser.get("C:/Users/xxxx/AppData/Local/Google/Chrome/Application/chrome.exe %s).open(url, 2)
但这样有个问题,打开浏览器未关闭前,编辑器被冻结不可用。我尝试subprocess.call方法,结果一样。
- 修复View In Browser的bug,重新打包使用。
所以,目前最简单的方法就是更换默认浏览器了。。。如果你有更好的解决办法,请告知。
[:smile:]
来源:oschina
链接:https://my.oschina.net/u/2324376/blog/726097