Sublimetext3 如何在升华文本3中列出所有命令

Sublimetext3 如何在升华文本3中列出所有命令,sublimetext3,Sublimetext3,我想获得升华文本3中所有可用命令的列表(内置和来自软件包) 我想做的是: 创建快捷方式 我正在尝试为包命令创建快捷方式,但我不知道该命令的名称。我可以找到该命令并使用alt+shift+p使用它,但是当我尝试将快捷方式添加到我的.sublime keymap文件时,我不确定是否要在“命令”上加“?”位。如果我能列出所有的命令和grep,然后将正式的命令名复制粘贴到keymap文件中,那就太好了 探索 我想探索所有可用的命令(内置命令和来自包的命令),以了解Sublime文本功能。与其在subli

我想获得升华文本3中所有可用命令的列表(内置和来自软件包)

我想做的是:

创建快捷方式 我正在尝试为包命令创建快捷方式,但我不知道该命令的名称。我可以找到该命令并使用
alt+shift+p
使用它,但是当我尝试将快捷方式添加到我的
.sublime keymap
文件时,我不确定是否要在
“命令”上加“?”
位。如果我能列出所有的命令和grep,然后将正式的命令名复制粘贴到keymap文件中,那就太好了

探索 我想探索所有可用的命令(内置命令和来自包的命令),以了解Sublime文本功能。与其在sublime中搜索命令或在线阅读教程,我想问问我的编辑:

你能做什么

而不是

你能做到吗


Sublime中有一个相当完整的核心命令列表,可通过获得,特别是在中。然而,这并不能帮助您了解第三方软件包和插件可能添加的命令

在你的问题中,你提到知道如何获得一个命令,但不知道它可能是为了在其他地方使用它。如果您知道如何调用命令(键、命令调色板、菜单),并且想知道该命令是什么,那么Sublime已经介绍过了

如果使用Ctrl+`或
视图>显示控制台
打开升华控制台,则可以输入以下命令:

sublime.log\u命令(真)
现在,每当您执行任何操作时,Sublime都会记录它正在执行控制台的命令,以及它可能需要的任何参数。例如,如果打开日志记录并依次按每个箭头键,控制台将显示以下内容:

命令:移动{“by”:“line”,“forward”:false}
命令:移动{“by”:“line”,“forward”:true}
命令:移动{“by”:“characters”,“forward”:false}
命令:移动{“by”:“characters”,“forward”:true}
使用此工具,您可以了解各种操作执行的命令,以便在其他地方使用它们。这也是一种简便的技术,用于诊断键盘快捷键之类的事情,例如,这些快捷键似乎不能完成您认为它们应该做的事情。使用
False
而不是
True
(或重新启动升华)运行相同的命令以关闭日志记录

如果您真的对每一个可能的命令的复杂的内部细节感兴趣,那么下面的内容是可能的。这将实现一个名为
list_all_commands
的命令,当您运行该命令时,它将把所有类型的所有可用命令都列在一个新的暂存缓冲区中

注意,并非所有实现的命令都必须用于外部使用;插件有时定义助手命令供自己使用。这意味着,尽管这会告诉您所有存在的命令,但并不意味着所有命令都是供您使用的

此外,尽管这大致列出了command类上的
run
方法所使用的参数(这是Sublime运行命令所执行的),但有些命令可能会有模糊的参数列表

导入升华
导入升华插件
进口检验
从升华插件导入应用程序命令类
从升华插件导入窗口命令类
从升华插件导入文本命令类
类ListAllCommandsCommand(升华插件.WindowCommand):
def运行(自):
self.view=self.window.new_文件()
self.view.set_scratch(True)
self.view.set_名称(“命令列表”)
self.list\u类别(“应用程序命令”,应用程序命令类)
self.list\u类别(“窗口命令”,窗口命令类)
self.list\u类别(“文本命令”,文本命令类)
def附加(自身,行):
self.view.run_命令(“append”,{“characters”:line+“\n”})
def列表\类别(自身、标题、命令\列表):
self.append(标题)
self.append(len(title)*“=”)
对于命令列表中的命令:
self.append(“{cmd}{args}.”格式(
cmd=self.get_name(命令),
args=str(inspect.signature(command.run)))
self.append(“”)
def get_名称(自身、cls):
clsname=cls.\u名称__
name=clsname[0]。下()
last_upper=错误
对于clsname[1:]中的c:
如果c.isupper()而不是last_upper:
名称+='''''
name+=c.lower()
其他:
名称+=c
last_upper=c.isupper()
如果name.endswith(“_命令”):
名称=名称[0:-8]
返回名称