打开不带扩展名的文件并更改其语言

To open the file without an extension and change its language

以下代码(您应该 运行 它与 cmd.exe)打开 Sublime Text 并将语言更改为 JSON:

sublime_text.exe -n -w --command "set_file_type {\"syntax\": \"Packages/JavaScript/JSON.sublime-syntax\"}"

但是,我需要稍微改变它的行为。它应该更改打开文件的语言。该文件 README 没有扩展名。

sublime_text.exe C:\test\README -n -w --command "set_file_type {\"syntax\": \"Packages/JavaScript/JSON.sublime-syntax\"}"

由于某种原因,它不起作用。语言还是"Plain Text"。我做错了什么?

当我尝试这个时,我看到它设置了在我执行命令之前处于活动状态的选项卡的语法。

这告诉我们,命令行上提供的命令在加载文件之前执行,可能是因为 ST 异步执行此操作。

对我来说,可以通过使用单独的调用来让它工作:

subl C:\test\README && subl --command "set_file_type { \"syntax\": \"Packages/JavaScript/JSON.sublime-syntax\" }"

请注意,我没有使用 -w,因为这会等到文件关闭后再执行命令。

此外,您可以直接使用 new_file 命令设置新文件的语法:

subl --command "new_file { \"syntax\": \"Packages/JavaScript/JSON.sublime-syntax\" }"

显然,如果你想在新的 window 中使用它,你可以保留 -n 参数。而且,如果您希望 Sublime Text 在关闭文件之前不 return 控制 shell,那么您也可以保留 -w,但据我所知,这仅适用于您正在打开一个文件,而不是在创建一个新文件时。如果您使用 -w,您将无法从命令行更改语法。您最好使用 ApplySyntax 之类的插件或自己编写一个小的 Python 脚本来设置打开文件时使用路径 C:\test\README

的文件类型