Sublime Text 3 - 向 sublime 控制台发送命令

Sublime Text 3 - ?send commands to sublime console

我想扩展 Sublime 功能,它允许我将文本从任何应用程序发送到活动的 Sublime Text window。我意识到可以使用以下命令从 Sublime Console 添加文本:

view.run_command("insert", {"characters": "Hello World!"})

现在我想知道是否有任何内置解决方案可以从外部应用程序执行 sublime 控制台命令,例如。命令行界面接受外部命令?否则,我正在考虑应该可以设置 Python 到 运行 套接字服务器来侦听命令并以这种方式接受输入?

有什么想法吗?

谢谢!

Sublime 附带的 subl 命令允许您从命令行执行任意命令:

tmartin:dart:~> subl --help
Sublime Text build 3211

Usage: subl [arguments] [files]         Edit the given files
   or: subl [arguments] [directories]   Open the given directories

Arguments:
  --project <project>: Load the given project
  --command <command>: Run the given command
  -n or --new-window:  Open a new window
  -a or --add:         Add folders to the current window
  -w or --wait:        Wait for the files to be closed before returning
  -b or --background:  Don't activate the application
  -h or --help:        Show help (this message) and exit
  -v or --version:     Show version and exit

Filenames may be given a :line or :line:column suffix to open at a specific
location.

--command 参数要求您在单个参数中提供命令和所需的所有参数;例如:

tmartin:dart:~> subl --command "insert {\"characters\": \"Hello, World\"}"

这适用于任何命令,就像 Sublime 控制台一样,TextCommand 命令针对当前 viewWindowCommand 命令针对当前 window

subl 命令是一个帮助程序,它将它的命​​令行参数提供给 Sublime 的 运行 实例并终止;在 Sublime 尚未 运行 的情况下,它首先启动 Sublime,然后传递参数。

在 Sublime 尚未 运行 的情况下,--command 参数将不起作用,因为 subl 会在 Sublime 启动后立即提供该参数,但它需要插件宿主需要一些时间才能对命令可用(在 Sublime 中,您会在控制台中看到这种情况作为 plugins loaded 消息发生)。

因此,重要的是您要么确保 Sublime 是 运行,要么先启动 Sublime,稍等片刻,然后提供命令。