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

时间:2016-03-04 13:18:03

标签: sublimetext3

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

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

    <script>
var tarih=new Date();
var st = tarih.getHours();
var dk = tarih.getMinutes();
var sn = tarih.getSeconds();
var search = st+":"+dk+":"+sn;
var place=0;
$.get('can.txt', function(data) {    
var lines = data.split("\n\g");

$.each(lines, function(n, elem) {
place = elem.indexOf(search,place);
place2= elem.lastIndexOf(search);
if(place != -1) 
{
   getX=elem.substring(place-500,place2);//i get all value in a second
  //in here i must find and get x and y value in getX
  //how can i get these values easyly?
  //if i run code half hours , the can.txt file size is avarege 10-15 mb.
  // i wanted use regex but it doesn't work :/ 
  if (getX.match(/^x":[0-9]$/))
  $('#div').append('<div>' getX+'</div>');  
}    
});
});
setTimeout(bak(),1000);
</script>

<div id="div"> </div>

如果我使用{ "keys" : ["ctrl+alt+s"], "command" : "save_all", "args" :{"encoding" : "Western (Windows 1252)"} } 检查控制台中的键绑定,我可以看到键绑定正在运行,因为它返回sublime.log_commands(True)但是Sublime Text仍未将文件保存为Western(Windows 1252) 。如果我重新打开文件,则会显示UTF-8。

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

1 个答案:

答案 0 :(得分:10)

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

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

一次性使用,您只需在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)

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

然后你的键绑定需要看起来像这样:

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