在崇高的文本添加自定义菜单(Adding Custom Menus in Sublime Text)

2019-08-31 18:50发布

如何SublimeText 2添加自定义菜单项。

有任何想法吗 ??
我看到有一个Main.sublime菜单文件,但不知道如何对其进行编辑。

谢谢!

Answer 1:

在* .sublime菜单文件只是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>"}
}


Answer 2:

如果你要的只是运行一个命令什么更容易的选择。 创建软件包/用户目录中的文件Context.sublime菜单,并添加以下内容:

[
    { "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"]} }
]


Answer 3:

我知道这样太晚了入党并加入我的2美分。 无论如何,Main.sublime菜单是一个文件,允许您添加菜单项顶部的菜单即[文件,编辑,选择,查找,查看,后藤等]

我最近增加了一个新的部分“开发”只是为了弄清楚。 我也想办法触发浏览器预览特定的浏览器。 看看这个。

  [
    {
    "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。 万一有人在这里跌倒各地。



文章来源: Adding Custom Menus in Sublime Text