Подтвердить что ты не робот

Добавление пользовательских меню в Sublime Text

Как добавить пользовательский пункт меню в SublimeText 2.

Любые идеи?
Я вижу, что есть файл Main.sublime-menu, но не знаю, как его редактировать.

Спасибо!

4b9b3361

Ответ 1

Файл *.sublime-menu - это просто JSON. Вы можете создать Main.sublime-меню в своем каталоге пользователя, и оно будет объединено с другими записями меню. Может быть полезно просмотреть файлы Main.sublime-меню, которые имеют сторонние плагины. Они, как правило, намного короче, поэтому может быть легче понять некоторые вещи, которые вам нужно определить в каждой записи.

изменить

Вы можете использовать следующее в качестве плагина для открытия блокнота с произвольным файлом.

import sublime
import sublime_plugin
import subprocess
import threading
class OpenNotepadCommand(sublime_plugin.TextCommand):
    def run(self, edit, filename=None):
        th = NotepadThread(filename)
        th.start()

class NotepadThread(threading.Thread):
    def __init__(self, filename=None):
        self.filename = filename
        threading.Thread.__init__(self)

    def run(self):
        if self.filename is not None:
            subprocess.call("notepad.exe %s" % self.filename)
        else:
            subprocess.call("notepad.exe")

При создании элемента меню для команды и аргументов используйте что-то вроде следующего.

{
    "command": "open_notepad",
    "args": { "filename": "<the absolute path here>"}
}

Ответ 2

Легче вариант, если вы хотите просто запустить команду. Создайте файл Context.sublime-menu внутри вашего каталога Packages/User и добавьте следующее:

[
    { "caption": "<Your caption here>", "command": "exec", "args": {"cmd": ["<your cmd name>", "<arg1>", "<arg2>", <...>]} }
]

Пример: добавление пункта меню в контекстное меню, в котором запускается только dir:

[
   { "caption": "List files in current dir", "command": "exec", "args": {"cmd": ["dir"]} }
]

Ответ 3

Я знаю слишком поздно, чтобы присоединиться к вечеринке и добавить свои 2 цента. В любом случае, Main.sublime-menu - это файл, который позволяет вам добавлять пункты меню в верхнее меню, т.е. [Файл, Правка, Выбор, Найти, Вид, Перейти и т.д.]

Я недавно добавил новый раздел "Dev", чтобы понять это. Я также хотел способ запуска предварительного просмотра браузера для конкретного браузера. Проверьте это.

  [
    {
    "caption": "Dev",
    "mnemonic": "Z",
    "id": "dev",
    "children": [
      {
        "caption" : "Previews",
        "children": [
          { "caption": "Markdown Live Preview", "command": "new_markdown_live_preview", "id": "markdown_live_preview" },
          { "caption": "Preview in Default Browser", "command": "view_in_browser", "id": "markdown_live_preview" },
          { "caption": "Preview in Firefox", "command": "view_in_browser", "args": { "browser": "firefox" }, "id": "markdown_live_preview" },
          { "caption": "Preview in Chrome","command": "view_in_browser", "args": { "browser": "chrome" }, "id": "markdown_live_preview" },
          { "caption": "Preview in Safari", "command": "view_in_browser", "args": { "browser": "safari" }, "id": "markdown_live_preview" },
          ]
        },
      ]
    }
  ]

Во всяком случае, это все еще работает в ST3. На всякий случай, когда кто-нибудь спотыкается здесь.