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

问题描述 投票:0回答:1

以下代码(您应该使用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\"}"

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

sublimetext3 sublimetext
1个回答
1
投票

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

这告诉我们,命令行上提供的命令是在文件加载之前执行的,这可能是因为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\" }"

显然,如果需要在新窗口中,则可以保留-n参数。而且,如果您希望Sublime Text在关闭文件之前不将控制权交还给Shell,那么您也可以保留-w,但据我所知,这仅在打开文件时有效,而在创建文件时无效新的一个。并且,如果您使用-w,则将无法从命令行更改语法。当使用路径ApplySyntax等打开文件时,使用C:\test\README这样的插件或自己编写一个小型Python脚本来设置文件类型可能会更好。

© www.soinside.com 2019 - 2024. All rights reserved.