单击文件名以使用 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 会变得非常无响应。


这是一个可行的解决方案。

  1. 首先将此文件 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)
    
  2. 然后将以下行添加到C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User\Default (Windows).sublime-keymap:

    { "keys": ["ctrl+alt+enter"], "command": "lllaunch" }
    
  3. 重启 Sublime Text。

  4. 现在:

    • 在 URL 上执行 CTRLALTENTER 将打开浏览器。
    • 对带引号的文件名执行 CTRLALTENTER(例如 "C:\test\readme.txt") 将在您喜欢的编辑器中编辑文件。