在Sublime Text 3中使用新编码保存打开的文件

Are*_*ete 4 sublimetext3

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

我已经尝试使用以下键命令来实现这一点,没有运气.按键组合时基本没有任何反应.

{
 "keys" : ["ctrl+alt+s"],
 "command" : "save_all", "args" :{"encoding" : "Western (Windows 1252)"}
} 
Run Code Online (Sandbox Code Playgroud)

如果我在控制台中检查键绑定,sublime.log_commands(True)我可以看到键绑定正在工作,因为它返回command: save_all {"encoding": "Western (Windows 1252)"}但是Sublime Text仍然没有将文件保存为Western(Windows 1252).如果我重新打开文件,它会说UTF-8.

这是可能的,还是我使用的键绑定可能有问题?

Kei*_*all 10

我猜这个save_all命令不支持这个encoding参数.

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


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

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

要创建键绑定:

  • 转到Tools菜单
  • Developer
  • New Plugin...

用以下内容替换新文件的内容:

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)
Run Code Online (Sandbox Code Playgroud)

将其保存save_all_with_encoding.pyPackages/User文件夹中(当它显示另存为对话框时,它应默认为此文件夹...)

然后你的键绑定将需要如下所示:

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