单击文件名以使用 Sublime 在新选项卡中打开
Click on a filename to open in a new tab with Sublime
通常在我的个人 readme.txt 文件/日志文件中,我有一些对其他 .txt 文件的引用。它可以是相对路径 (..\notes\blah.txt
) 或绝对路径(如下面的屏幕截图所示)。
对于 .txt 文件,是否有可能在 Sublime 中具有此行为:双击文件名以在新选项卡中打开它?
注意:Clickable URLs plugin 对我来说不是很有用,因为它解析整个文件,突出显示 URLs(多亏了一个很好的正则表达式),然后收听到 CTRL+ALT+ENTER:如果超过 ~ 500 个突出显示的项目,Sublime Text 会变得非常无响应。
这是一个可行的解决方案。
首先将此文件 lllaunch.py
放入您的用户包中(例如 C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User\
):
import sublime, sublime_plugin
import subprocess
import webbrowser
import re
BROWSER = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
EDITOR = 'C:\Program Files\Sublime Text 2\sublime_text.exe'
class LllaunchCommand(sublime_plugin.TextCommand):
def run(self, edit):
for region in self.view.sel():
s = self.view.substr(self.view.line(region))
i = region.begin() - self.view.line(region).begin()
start = 0
end = -1
for j, c in enumerate(s):
if c == ' ':
if j < i:
start = j
else:
end = j
break
word = s[start:end].strip() if end != -1 else s[start:].strip()
isurl = bool(re.match("\bhttps?://[-A-Za-z0-9+&@#/%?=~_()|!:,.;']*[-A-Za-z0-9+&@#/%=~_(|]", word))
if isurl:
webbrowser.register('mybrowser', None, webbrowser.GenericBrowser(BROWSER))
webbrowser.get('mybrowser').open(word)
else:
s = '"' + s.split('"')[s[:i].count('"')] + '"'
command = '"%s" %s' % (EDITOR, s)
subprocess.Popen(command)
然后将以下行添加到C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User\Default (Windows).sublime-keymap
:
{ "keys": ["ctrl+alt+enter"], "command": "lllaunch" }
重启 Sublime Text。
现在:
- 在 URL 上执行 CTRLALTENTER 将打开浏览器。
- 对带引号的文件名执行 CTRLALTENTER(例如
"C:\test\readme.txt"
) 将在您喜欢的编辑器中编辑文件。
通常在我的个人 readme.txt 文件/日志文件中,我有一些对其他 .txt 文件的引用。它可以是相对路径 (..\notes\blah.txt
) 或绝对路径(如下面的屏幕截图所示)。
对于 .txt 文件,是否有可能在 Sublime 中具有此行为:双击文件名以在新选项卡中打开它?
注意:Clickable URLs plugin 对我来说不是很有用,因为它解析整个文件,突出显示 URLs(多亏了一个很好的正则表达式),然后收听到 CTRL+ALT+ENTER:如果超过 ~ 500 个突出显示的项目,Sublime Text 会变得非常无响应。
这是一个可行的解决方案。
首先将此文件
lllaunch.py
放入您的用户包中(例如C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User\
):import sublime, sublime_plugin import subprocess import webbrowser import re BROWSER = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe' EDITOR = 'C:\Program Files\Sublime Text 2\sublime_text.exe' class LllaunchCommand(sublime_plugin.TextCommand): def run(self, edit): for region in self.view.sel(): s = self.view.substr(self.view.line(region)) i = region.begin() - self.view.line(region).begin() start = 0 end = -1 for j, c in enumerate(s): if c == ' ': if j < i: start = j else: end = j break word = s[start:end].strip() if end != -1 else s[start:].strip() isurl = bool(re.match("\bhttps?://[-A-Za-z0-9+&@#/%?=~_()|!:,.;']*[-A-Za-z0-9+&@#/%=~_(|]", word)) if isurl: webbrowser.register('mybrowser', None, webbrowser.GenericBrowser(BROWSER)) webbrowser.get('mybrowser').open(word) else: s = '"' + s.split('"')[s[:i].count('"')] + '"' command = '"%s" %s' % (EDITOR, s) subprocess.Popen(command)
然后将以下行添加到
C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User\Default (Windows).sublime-keymap
:{ "keys": ["ctrl+alt+enter"], "command": "lllaunch" }
重启 Sublime Text。
现在:
- 在 URL 上执行 CTRLALTENTER 将打开浏览器。
- 对带引号的文件名执行 CTRLALTENTER(例如
"C:\test\readme.txt"
) 将在您喜欢的编辑器中编辑文件。