我不是要求将语法与文件扩展名相关联,而是将文件扩展名与语法相关联。也就是说,在创建新文件后设置保存文件对话框中建议的文件扩展名,然后设置语法,然后点击保存。
您可以在保存对话框中更改扩展名,但最好不要每次都这样做。
答案 0 :(得分:4)
默认情况下,为了保存.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)
因此,对于Markdown,您可以执行以下操作将默认值从.mdown
更改为.md
:
PRV: O
PackageResourceViewer: Open Resource
Markdown
Markdown.sublime-syntax
找到它所说的位置:
file_extensions:
- mdown
- markdown
- markdn
- md
更改它以便md
位于顶部:
file_extensions:
- md
- mdown
- markdown
- markdn
然后,当您创建新标签时,将语法设置为Markdown并保存,它将默认为.md
文件扩展名。
请注意,您可以尝试在相关的GitHub回购中创建问题/ PR,如果您认为更改默认值也可以使其他人受益,并希望看到回购客户的反应。
答案 1 :(得分:0)
您是否还尝试将.txt.
设置为保存纯文本文档时的默认文件扩展名?我环顾四周,据我所知,目前还不可能这样做。遗憾的是,默认的Plain Text
内容类型似乎是唯一一个不会默认为其特定.txt
扩展名的内容类型,即使它存在于另存为类型下拉列表中strong>另存为窗口:
我已经看到推荐AdvancedNewFile插件作为解决此方法的方法,但我没有任何个人经验。