【问题标题】:Save open files with new encoding in Sublime Text 3在 Sublime Text 3 中使用新编码保存打开的文件
【发布时间】:2016-03-04 13:18:03
【问题描述】:

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

我尝试使用以下键命令来实现这一点,但没有成功。当我按下组合键时基本上没有任何反应。

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

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

这完全可能吗?或者我使用的键绑定可能有问题?

【问题讨论】:

    标签: sublimetext3


    【解决方案1】:

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

    您可以使用简短的 python sn-p 以不同的编码保存所有打开的文件。


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

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

    创建键绑定:

    • 转到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)
    

    将其另存为Packages/User 文件夹中的save_all_with_encoding.py(在显示另存为对话框时应默认为该文件夹...)

    那么您的键绑定将需要如下所示:

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

    【讨论】:

    • 你怎么知道的?这是在某种文档中吗?对不起这个愚蠢的问题
    • 太好了,你拯救了我的一天......你知道我在哪里可以获得"encoding" : "xxx" 对中所有有效编码值的完整列表吗?
    • @FaithReaper 是的,只需使用packagecontrol.io/packages/PackageResourceViewer 查看Packages/Default/Main.sublime-menu 文件——ST 支持的所有编码都是File -> Reopen with Encoding 菜单的一部分。
    • 这真是太棒了。顺便说一句,也可以在 Sublime Text 2 中使用。
    猜你喜欢
    • 2014-06-09
    • 2016-09-24
    • 1970-01-01
    • 2014-12-11
    • 2013-12-26
    • 1970-01-01
    • 2020-04-27
    • 2014-05-26
    相关资源
    最近更新 更多