2016-02-12 16 views
2

聽起來很懶,因爲它是我想知道是否有可能使用(命令行)使用sublime打開文件,並在同一命令中定義預期的語法。如何一次性啓動Sublime並定義文件語法?

比方說,在Mac上,我們已經安裝了subl命令,因此運行$ subl .bash_something將打開.bash_something然後我們要選擇的是「SHEL腳本(bash)的」從列表中的語法。真正好的東西(對於我來說)是將命令的語法作爲參數。即

$ subl -x bash .bash_something 

或類似的東西。這顯然不起作用,但我想知道是否有類似的解決方案,或者如果它可能包括一個

回答

2

不幸的是,我不能找到從命令行動態設置語法。 subl具有--command選項,該選項允許您在加載指定的文件,目錄或項目時運行Sublime命令。但是,更改視圖語法的命令 - set_file_type - 採用格式爲("syntax": "Packages/PackageName/SyntaxName.sublime-syntax")(或SyntaxName.tmLanguage)的參數。據我所知,你根本無法將參數傳遞給通過命令行運行的命令。我打開了an issue來要求改進。

現在,這並不意味着全部丟失。如果您只有幾個Sublime未知的文件類型,請打開它們,然後選擇View -> Syntax -> Open all with current extension as...並選擇所需的語法。如果由於某種原因,這還不夠,或者想要更精確地控制哪些文件名(而不僅僅是哪些擴展名)被打開,請查看ApplySyntax插件。它允許您使用正則表達式準確地打開您定義的文件模式作爲語法。

1

現在,命令可以在Sublime 3中接受參數。我能用bash函數實現這個功能。

您可以使用內聯JSON和轉義引號將參數傳遞給--command選項。該命令將語法改爲猛砸當前活動文件中的崇高:

subl --command "set_setting {\"setting\": \"syntax\", \"value\": \"Packages/ShellScript/Shell-Unix-Generic.sublime-syntax\"}" 

我創建了一個簡單的bash功能和採購在我.bash_profile這兩個命令包裝在一起激活/打開一個文件,然後改變synax:

function subl_bash() { 
    subl "$1" && subl --command "set_setting {\"setting\": \"syntax\", \"value\": \"Packages/ShellScript/Shell-Unix-Generic.sublime-syntax\"}" 
} 
相關問題