我不是在询问将语法与文件扩展名相关联,而是在询问将文件扩展名与语法相关联。也就是说,在创建新文件后设置保存文件对话框中建议的文件扩展名,然后设置语法,然后单击保存。
您可以在保存对话框中更改扩展名,但最好不要每次都这样做。
默认情况下,要保存扩展名为
.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
。
要更改语法的默认文件扩展名,需要更改
.sublime-syntax
文件以 重新排序文件扩展名集,以便默认扩展名位于列表中的第一个。
(使用之前提到的default_extension
是不可靠的。)
因此,对于 Markdown,您可以执行以下操作将默认值从
.mdown
更改为 .md
:
安装PackageResourceViewer(如果尚未安装)
打开命令面板
类型
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。
您是否还尝试将
.txt.
设置为保存纯文本文档时的默认文件扩展名?我环顾四周,据我所知,目前还不可能这样做。遗憾的是,默认的 Plain Text
内容类型似乎是唯一一种不默认为其特定 .txt
扩展名的内容类型,即使它存在于 另存为 窗口中的 另存为类型 下拉列表中:
我已经看到推荐使用 AdvancedNewFile 插件来解决此问题,但我没有任何个人经验。
在“C:\Users”USERNAME”\AppData\Roaming\Sublime Text\Packages\User\Preferences.sublime-settings”中,设置“default_extension”:“txt”。
您可以通过单击“首选项”-->“设置”来打开文件。
文件应该是这样的
{ “字体大小”:12, “default_extension”:“txt” }