2016-03-04 91 views
3

我想用新的字符编码在Sublime Text 3中保存多个文件。在崇高文本中使用新编码保存打开的文件3

我已经尝试使用下面的键盘命令来实现这个没有运气。当我按下组合键时基本上没有任何反应。

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

如果我检查的关键在控制台与sublime.log_commands(True)结合我可以看到按键绑定工作,因为它返回command: save_all {"encoding": "Western (Windows 1252)"}但崇高的文本仍然没有将文件保存为西欧(Windows 1252)。如果我重新打开文件它说UTF-8。

这是否可能或者可能是我用的键绑定有问题?

回答

8

我猜想save_all命令不支持encoding参数。

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


为一次性使用,你可以简单地运行在崇高的蟒蛇控制台以下:

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

要创建一个键绑定:

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

使用以下内容替换新文件的内容:在Packages/User文件夹

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) 

保存为save_all_with_encoding.py(它应该默认为这个文件夹时,它显示了另存为对话框...)

那么你的键绑定就需要像这样:

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

你怎么知道这个?这是在某种文件?对不起,这个愚蠢的问题 – Josepas

+0

太棒了,你救了我的一天....你知道我在哪里可以得到编码中所有有效编码值的完整列表:“xxx”对吗? – FaithReaper

+1

@FaithReaper是的,只需使用https://packagecontrol.io/packages/PackageResourceViewer查看'Packages/Default/Main.sublime-menu'文件 - ST支持的所有编码都是'File - > Reopen with Encoding '菜单。 –