2016-12-10 8 views
2

Часто в моих личных файлах/файлах файла readme.txt у меня есть ссылки на другие .txt-файлы. Это может быть относительный путь (..\notes\blah.txt) или абсолютный путь (как на скриншоте ниже).Нажмите на имя файла, которое необходимо открыть на новой вкладке с Sublime

Возможно ли, для .txt-файла, иметь такое поведение в Sublime: Дважды щелкните по имени файла, чтобы открыть его на новой вкладке?

enter image description here

+2

Хороший вопрос! Я не пробовал, но [Clickable URLs Plugin] (https://github.com/leonid-shevtsov/ClickableUrls_SublimeText) может оказаться полезным. Вы можете установить браузер по умолчанию в его настройках, интересно, что произойдет, если вы установите браузер на Sublime ... стоит попробовать. Я думаю, –

+0

@DarrenH, как следует из его названия, Clickable URLs позволяет *** URL *** быть открытые в пользовательской программе, а не случайные пути. Пожалуйста, на самом деле исследуйте вещи, прежде чем предлагать их в качестве решения. – MattDMo

+0

@MattDMo не требуется никаких исследований, чтобы понять, что это предназначено для открытия URL-адресов, как вы правильно заявляете, это имя. Но совершенно правдоподобно, что он может открыть локальные файлы в качестве побочного эффекта, и это определенно стоит изучить. Я не знаю, будет ли это работать или нет, поэтому я предложил его как направление исследований, а не фактический ответ. –

ответ

2

Примечание: Clickable URLs plugin не очень полезный для меня, потому что он анализирует весь файл, выделяет URL (благодаря хорошим регулярным выражениям), а затем выслушивает 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. Restart Sublime Text.

  4. Сейчас:

    • делает CTRLALTENTER на URL откроет браузер.
    • делает CTRLALTENTER на имя файла в кавычки (например "C:\test\readme.txt") будет редактировать файл в вашем любимом редакторе.