2016-03-04 97 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 '菜單。 –