Sublimetext3 如何设置或查找升华文本插件的命令名
我正在尝试为我的NodeJS服务器编写一个ST3插件。为了运行它,我调用命令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
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)
以下是一些其他示例:
- <