如何在 SublimeText 2 中添加自定义菜单项。
任何想法??
我看到有一个 Main.sublime-menu 文件,但不知道如何编辑它。
谢谢!
答案 0 :(得分:15)
* .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>"}
}
答案 1 :(得分:11)
如果您想要的只是运行命令,则更容易选择。在Packages / User目录中创建一个Context.sublime-menu文件,并添加以下内容:
[
{ "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"]} }
]
答案 2 :(得分:0)
我知道这种方式来不及参加聚会并加上我的2美分,为时已晚。无论如何,Main.sublime菜单是一个文件,允许您将菜单项添加到顶部菜单,即[文件,编辑,选择,查找,查看,转到等]
我最近添加了一个新部分“ 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中使用。以防万一有人在这里绊倒。