Sublimetext3 如何设置或查找升华文本插件的命令名

Sublimetext3 如何设置或查找升华文本插件的命令名,sublimetext3,sublimetext,sublime-text-plugin,Sublimetext3,Sublimetext,Sublime Text Plugin,我正在尝试为我的NodeJS服务器编写一个ST3插件。为了运行它,我调用命令view.run\u command('Node js.nodejs') 我的Sublime Text软件包文件夹如下所示: │ main.py │ text_example_one.py │ ├───Node js │ Nodejs.py │ └───User │ main.py │ Package Control.last-run │ Package Contr

我正在尝试为我的NodeJS服务器编写一个ST3插件。为了运行它,我调用命令
view.run\u command('Node js.nodejs')

我的Sublime Text
软件包
文件夹如下所示:

│   main.py
│   text_example_one.py
│
├───Node js
│       Nodejs.py
│
└───User
    │   main.py
    │   Package Control.last-run
    │   Package Control.sublime-settings
    │   Preferences.sublime-settings
    │
    └───Package Control.cache
            01524fae79697630d0454ba3fabd9414
            01524fae79697630d0454ba3fabd9414.info
。/Packages/Node js/Nodejs.py
文件包含以下代码:

导入升华,升华插件
类TryCommand(sublime_plugin.TextCommand):
def运行(自我,编辑):
打印(“它正在工作”)
self.view.insert(编辑,0,“你好,世界!”)
调用
view.run_命令('Node js.nodejs')
时根本不会发生任何事情,请参阅


没有引发任何错误,但未插入
“Hello,World!”
消息,且控制台中未打印
“它正在工作”

您的插件不会被
视图调用。运行\u命令('Node js.nodejs')
命令。为了运行插件,您应该调用
try
命令,例如
view.run\u命令(“try”)
。以下是原因的解释:

升华文本插件的命令名来自它们的类名。例如下面的类

类PrintHelloInConsoleCommand(升华插件.TextCommand):
def运行(自我,编辑):
打印(“你好”)
…可以通过调用控制台中的
打印\u hello\u
命令来运行。e、 g

//从插件或控制台运行
view.run_命令(“在_控制台中打印_hello_”)
//通过添加密钥绑定从密钥运行
{“键”:[“ctrl+shift+y”],“命令”:“在控制台中打印你好”},
//如果插件不是'TextCommand',而是'sublime_plugin.WindowCommand'`
//然后,需要以下行在控制台中运行该命令。
运行命令(“在控制台中打印你好”)
要从类名中获取命令名,请首先从类名中删除
命令
后缀。其次,将类名的剩余部分从
CamelCase
转换为
snake\u case
。因此,通过控制台中的
print\u hello\u
命令调用定义
类PrintHelloInConsoleCommand
的插件

  • 类名为:
    PrintHelloInConsoleCommand
  • 从类名中删除命令:
    PrintHelloInConsoleCommand-->PrintHelloInConsole
  • 将CamelCase转换为snake\u case:
    PrintHelloInConsole-->在\u控制台中打印\u hello\u
  • 要调用的命令的名称是:
    print\u hello\u in\u console
通过调用
try
命令,即
view.run\u命令(“try”)
可以运行您的类
class TryCommand(sublime\u plugin.TextCommand)


以下是一些其他示例:

  • 类ClearConsoleCommand(升华插件.WindowCommand)

    ⟶ <代码>“清除控制台”
    命令
  • 类InsertDateTimeCommand(升华插件.TextCommand)

    ⟶ <代码>“插入日期时间”命令
  • 类TestOKCommand(sublime\u plugin.TextCommand)

    ⟶ <代码>“未创建命令-请勿使用大写单词,例如
    “TestOK”
    中的
    “OK”
    。请注意,这不会创建
    “test\u o\u k”
    命令
  • 类移动选择(sublime\u plugin.TextCommand)

    ⟶ <代码>“移动选择”命令-尽管在类名中省略了
    “命令”
    ,该命令仍然有效。在撰写本文时,ST并未严格执行该要求(但在未来版本中可能会发生变化)
  • class AutoSaverEvents(升华插件.EventListener)

    “”
    未创建任何命令-不会调用事件侦听器,因此不会创建任何命令,并且ST不希望类名以
    “command”结尾。

有关插件的更多信息,请参阅Sublime文本的第页,其中包含比官方文档更多的信息。

您的插件不会被
view.run_命令('Node js.nodejs')
命令调用。为了运行插件,您应该调用
try
命令,例如
view.run\u命令(“try”)
。以下是原因的解释:

升华文本插件的命令名来自它们的类名。例如下面的类

类PrintHelloInConsoleCommand(升华插件.TextCommand):
def运行(自我,编辑):
打印(“你好”)
…可以通过调用控制台中的
打印\u hello\u
命令来运行。e、 g

//从插件或控制台运行
view.run_命令(“在_控制台中打印_hello_”)
//通过添加密钥绑定从密钥运行
{“键”:[“ctrl+shift+y”],“命令”:“在控制台中打印你好”},
//如果插件不是'TextCommand',而是'sublime_plugin.WindowCommand'`
//然后,需要以下行在控制台中运行该命令。
运行命令(“在控制台中打印你好”)
要从类名中获取命令名,请首先从类名中删除
命令
后缀。其次,将类名的剩余部分从
CamelCase
转换为
snake\u case
。因此,通过控制台中的
print\u hello\u
命令调用定义
类PrintHelloInConsoleCommand
的插件

  • 类名为:
    PrintHelloInConsoleCommand
  • 从类名中删除命令:
    PrintHelloInConsoleCommand-->PrintHelloInConsole
  • 将CamelCase转换为snake\u case:
    PrintHelloInConsole-->在\u控制台中打印\u hello\u
  • 要调用的命令的名称是:
    print\u hello\u in\u console
通过调用
try
命令,即
view.run\u命令(“try”)
可以运行您的类
class TryCommand(sublime\u plugin.TextCommand)


以下是一些其他示例:

  • <