首先说下,个人是Sublime Text 3,win10。html
ST有个插件View In Browser能够在浏览器里打开文件,但通过试用,报Encoding错误,其Github的issues里也有人提出了此bug,但未解决。而后我就找到了这么个办法。python
一、点击菜单Tools -> New Plugin…,在建立好的py模板文件输入下列内容:web
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。chrome
二、接下来保存,就是默认弹出来的 Packages/User目录,文件名自定义,好比open_browser
sublime-text
三、设置快捷键,点菜单Preferences -> key Bindings - User(我的快捷键配置),输入下列内容:浏览器
[{ "keys": ["ctrl+f5"], "command": "open_browser" }]
keys里面的内容能够自定义,不和既有的快捷键冲突就好,command填的就是上一步保存的文件名。编辑器
这样就能够在经过快捷键ctrl+f5
在默认浏览器里打开当前文件了。url
那么如何在非默认浏览器里打开当前文件呢?插件
BROWSER
的环境变量,实际我怎么设置也没有用,经过os.environ["BROWSER"]方法也无效。。。webbrowser.get("C:/Users/xxxx/AppData/Local/Google/Chrome/Application/chrome.exe %s).open(url, 2)
但这样有个问题,打开浏览器未关闭前,编辑器被冻结不可用。我尝试subprocess.call方法,结果同样。code
因此,目前最简单的方法就是更换默认浏览器了。。。若是你有更好的解决办法,请告知。
[:smile:]