Sublimetext3 用升华文本3中的新编码保存打开的文件

Sublimetext3 用升华文本3中的新编码保存打开的文件,sublimetext3,Sublimetext3,我想用新的字符编码将多个文件保存在Sublime Text 3中 我曾尝试使用以下关键命令来实现这一点,但运气不佳。当我按下组合键时,基本上什么都没有发生 { "keys" : ["ctrl+alt+s"], "command" : "save_all", "args" :{"encoding" : "Western (Windows 1252)"} } 如果我使用sublime.log_命令(True)检查控制台中的密钥绑定,我可以看到密钥绑定正在工作,因为它返回command:sav

我想用新的字符编码将多个文件保存在Sublime Text 3中

我曾尝试使用以下关键命令来实现这一点,但运气不佳。当我按下组合键时,基本上什么都没有发生

{
 "keys" : ["ctrl+alt+s"],
 "command" : "save_all", "args" :{"encoding" : "Western (Windows 1252)"}
} 
如果我使用
sublime.log_命令(True)
检查控制台中的密钥绑定,我可以看到密钥绑定正在工作,因为它返回
command:save_all{“encoding”:“Western(Windows 1252)”}
但sublime Text仍然没有将文件保存为Western(Windows 1252)。如果我重新打开文件,它会显示UTF-8


这是可能的还是我使用的密钥绑定可能有问题?

我猜
save\u all
命令不支持
encoding
参数

您可以使用一个简短的python代码段以不同的编码保存所有打开的文件


对于单次使用,您只需在Sublime的python控制台中运行以下命令:

[view.run_command('save', { "encoding": "Western (Windows 1252)" }) for view in window.views()]

要创建键绑定,请执行以下操作:

  • 转到
    工具
    菜单
  • Developer
  • 新插件…
将新文件的内容替换为以下内容:

import sublime, sublime_plugin

class SaveAllWithEncodingCommand(sublime_plugin.TextCommand):
    def run(self, edit, **kwargs):
        for view in self.view.window().views():
            view.run_command('save', kwargs)
将其另存为
Packages/User
文件夹中的
Save\u all\u with_encoding.py
(当它显示另存为对话框时,应默认为该文件夹…)

然后,您的密钥绑定需要如下所示:

{
   "keys" : ["ctrl+alt+s"],
   "command" : "save_all_with_encoding", "args" : {"encoding" : "Western (Windows 1252)" }
}

你怎么知道的?这是某种文档吗?很抱歉问了这么愚蠢的问题太好了,你救了我一天。。。。你知道我在哪里可以得到
“encoding:“xxx”
对中所有有效编码值的完整列表吗?@faithreper是的,只需使用查看
软件包/Default/Main.sublime菜单
文件-ST支持的所有编码都是
文件->用编码重新打开
菜单的一部分。这真是太棒了。顺便说一句,它也适用于《崇高的文本2》。