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

Sublimetext3 打开不带扩展名的文件并更改其语言,sublimetext3,sublimetext,Sublimetext3,Sublimetext,应使用cmd.exe运行以下代码以打开升华文本并将语言更改为JSON: sublime_text.exe -n -w --command "set_file_type {\"syntax\": \"Packages/JavaScript/JSON.sublime-syntax\"}" 但是,我需要稍微改变它的行为。它应该更改打开文件的语言。该文件是无扩展名的自述文件 sublime_text.exe C:\test\README -n -w --command "set_file_type {

应使用cmd.exe运行以下代码以打开升华文本并将语言更改为JSON:

sublime_text.exe -n -w --command "set_file_type {\"syntax\": \"Packages/JavaScript/JSON.sublime-syntax\"}"
但是,我需要稍微改变它的行为。它应该更改打开文件的语言。该文件是无扩展名的自述文件

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

由于某种原因,它不起作用。语言仍然是纯文本。我做错了什么?

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

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

对我来说,可以使用单独的调用使其工作:

subl C:\test\README && subl --command "set_file_type { \"syntax\": \"Packages/JavaScript/JSON.sublime-syntax\" }"
请注意,我没有使用-w,因为这将在执行命令之前等待文件关闭

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


显然,如果您希望它出现在新窗口中,可以保留-n参数。如果你想让Sublime Text在关闭文件之前不将控制权返回shell,那么你也可以保留-w,但从我看到的情况来看,这只在打开文件时有效,而不是在创建新文件时有效。如果使用-w,则无法从命令行更改语法。当文件以C:\test\README等路径打开时,最好使用ApplySyntax之类的插件或自己编写一个小Python脚本来设置文件类型。

在windows sublime_text.exe和subl.exe上是不同的东西;您应该使用subl.exe执行类似的操作。尽管如此,在本例中,升华是否已经在您执行此操作时运行,或者此命令也在启动它?@OdatNurd Hi。我也用subl.exe试过了,但没用。升华已经在运行了吗…?-我尝试了4种方法来使用这个代码。第一:ST关闭,没有打开的选项卡;第二:ST关闭,有一些打开的选项卡;第三:ST打开,没有打开的选项卡;第四:ST打开,有一些打开的选项卡。语言总是纯文本。
subl --command "new_file { \"syntax\": \"Packages/JavaScript/JSON.sublime-syntax\" }"