Sublimetext2 在升华文本中添加自定义菜单

Sublimetext2 在升华文本中添加自定义菜单,sublimetext2,sublimetext,Sublimetext2,Sublimetext,如何在升华文本2中添加自定义菜单项 有什么想法吗?? 我看到有一个Main.sublime菜单文件,但不知道如何编辑它 谢谢 *.sublime菜单文件就是JSON。您可以在用户目录中创建Main.sublime-menu,它将与其他菜单项合并。查看第三方插件的Main.sublime-menu文件可能会有所帮助。这些条目通常要短得多,因此可能更容易理解您需要在每个条目中定义的某些内容 编辑 您可以使用以下插件打开带有任意文件的记事本 import sublime import sublime_

如何在升华文本2中添加自定义菜单项

有什么想法吗??
我看到有一个Main.sublime菜单文件,但不知道如何编辑它


谢谢

*.sublime菜单文件就是JSON。您可以在用户目录中创建Main.sublime-menu,它将与其他菜单项合并。查看第三方插件的Main.sublime-menu文件可能会有所帮助。这些条目通常要短得多,因此可能更容易理解您需要在每个条目中定义的某些内容

编辑

您可以使用以下插件打开带有任意文件的记事本

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>"}
}
{
“命令”:“打开记事本”,
“args”:{“文件名”:“”}
}

如果您只想运行一个命令,则更容易选择。在软件包/用户目录中创建文件Context.sublime-menu,并添加以下内容:

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

我知道这样做太晚了,不能参加聚会,不能再加上我的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中仍然有效。以防有人在这里绊倒。

默认的packages目录包含内置的官方主菜单(menubar)和上下文菜单(右键单击)。我相信也可以自定义侧边栏菜单--请参阅侧边栏增强插件@skuroda正在搜索谷歌。我找不到任何有用的东西。有人知道如何创建一个插件,可以运行从崇高的文本文件。我会设法从那开始。Thanks@AviAryan你想跑什么?插件只是python,因此您可以使用子流程模块创建新流程并执行您想要的任何操作。您可能还想看看或。@skuroda我正在尝试运行类似--
notepad.exe“
的程序,我不懂python,希望您能理解。如果你能为我提供一个简单的插件来实现上述功能,那就太好了。我添加了一些非常快速的东西,可以用记事本打开一个文件。有关如何安装插件的详细信息,请参阅此答案中的注释,这对我帮助很大,因为关于此主题的内容太多,没有真正涵盖此简单操作。但是,为了让它在我的Windows ST2上工作,我必须将其作为元素之一添加(标题和命令的同级项,等等)。。。“id”:“justSomethingUniqueLikeActionName”所以这里是我运行RegReplace插件序列的代码<代码>{“id”:“cfmlToCfScript”,“caption”:“CFML to CfScript”,“command”:“reg_replace”,“args”:{“replacements”:[“operation1”,“operation2”],“find_only”:false}如果您为插件创建了一个目录(即
软件包/插件名称
)将sublime菜单文件放在该目录中,并在JSON的
command
值中使用插件的命令名。例如:
{“caption”:“Plugin desc”,“command”:“Plugin_cmd”}
这些网站提供额外的帮助。
  [
    {
    "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" },
          ]
        },
      ]
    }
  ]