2015-04-19 57 views
4

我不是在詢問關聯文件擴展名的語法,而是關於文件擴展名與語法的關聯。即,在創建新文件後,設置保存文件對話框中建議的文件擴展名,然後設置語法,然後點擊保存。如何設置Sublime Text 3語法的默認文件擴展名?

您可以在保存對話框中更改擴展名,但最好不要每次都這樣做。

+0

我不認爲崇高的文字可以做到這一點。即使有插件可以做到這一點,它也不能保證可靠地工作。最好允許用戶在保存文件時選擇擴展名(這似乎是至少在mac中默認的) – gprasant

回答

3

爲了節省用.txt擴展模塊默認純文本文件,你可以用一個小插件實現這一目標:

import sublime 
import sublime_plugin 


class DefaultPlainTextExtensionEventListener(sublime_plugin.EventListener): 
    def update_default_extension(self, view, syntax): 
     if syntax == 'Packages/Text/Plain text.tmLanguage': 
      view.settings().set('default_extension', 'txt') 
     elif view.settings().get('default_extension', None) == 'txt': 
       view.settings().erase('default_extension') 

    def on_new_async(self, view): 
     self.update_default_extension(view, view.settings().get('syntax')) 

    def on_post_text_command(self, view, command_name, args): 
     if command_name == 'set_file_type': 
      self.update_default_extension(view, args['syntax']) 
     elif command_name in ('paste', 'paste_and_indent'): 
      self.update_default_extension(view, view.settings().get('syntax')) 

請注意,我們不能使用on_pre_save事件,因爲已經被證明文件對話框通過觸發該點的用戶,並選擇文件名。

這個想法是,當創建一個新選項卡或將語法更改爲純文本時,它將設置default_extension設置爲txt。如果語法更改爲其他內容,則會刪除default_extension


用於更改語法的默認文件擴展名it requires changing the .sublime-syntax file to re-order the file extensions set there so that the default one is first in the list。 (使用前面提到的default_extension是靠不住的 - https://github.com/SublimeTextIssues/Core/issues/1527

因此,對於降價,你可以做以下改變從.mdown的默認.md

  1. 安裝PackageResourceViewer如果尚未安裝
  2. 打開命令面板
  3. 類型PRV: O
  4. 選擇PackageResourceViewer: Open Resource
  5. 選擇Markdown
  6. 選擇Markdown.sublime-syntax
  7. 找到它說:

    file_extensions: 
        - mdown 
        - markdown 
        - markdn 
        - md 
    
  8. 更改它,這樣md是在頂部:

    file_extensions: 
        - md 
        - mdown 
        - markdown 
        - markdn 
    
  9. 保存文件

然後,當您創建新選項卡時,將語法設置爲Markdown並保存,它將默認爲.md文件擴展名。

請注意,如果您認爲更改默認設置可能會使其他人也受益,並希望查看回購維護者的反應,您可以嘗試在相關GitHub回購中創建問題/ PR。

+0

感謝您的回答!我已經創建了一個[一個PR](https://github.com/sublimehq/Packages/pull/755)改變這一點,我們會看到它的去向。 –

+0

PR已合併!我們從來沒有找到一個可靠的方法來處理這個問題,但是可能.md是個例外,而且通常不是必須的。所以,接受這個答案。 –

+0

@KeithHall Upvoted,但不完全理解。你寫道:「爲了在默認情況下保存帶有.txt擴展名的純文本文件......」 - 但是我們不能簡單地把'plain text.sublime-settings'與''default_extension「:」txt「'放在一起嗎?在我的測試中,它工作正常。 –

0

您是否還試圖將.txt.設置爲保存純文本文件時的默認文件擴展名?我環顧四周,據我所知,目前還不可能這樣做。可悲的是默認Plain Text內容類型似乎是唯一一個並非默認其具體.txt擴展,即使它在存在保存類型中保存下拉爲窗口:

Plain Text documents have a filetype set, but Sublime never uses it

我已經看到推薦使用AdvancedNewFile插件作爲解決此問題的方法,但我沒有任何個人體驗。

+0

是的,這就是主意。我想到的是在保存新的Markdown文件時默認爲'.md'而不是'.mdown'。 –

相關問題