让GBK Encoding Support内容支持中文,标签栏显示也为中文.
安装GBK Encoding Support ,然后修改SublimeText2\Data\Packages\GBK Encoding Support\sublime_gbk.py
内容如下:
#coding: utf8 import sublime, sublime_plugin import os, re import urllib TEMP_PATH = os.path.join(os.getcwd(), 'tmp') SEPERATOR = ' ' def gbk2utf8(view): try: reg_all = sublime.Region(0, view.size()) gbk = view.substr(reg_all).encode('gbk') except: gbk = file(view.file_name()).read() text = gbk.decode('gbk') file_name = view.file_name().encode('utf-8') tmp_file_name = urllib.quote_plus(os.path.basename(file_name)) + SEPERATOR + urllib.quote_plus(file_name) tmp_file = os.path.join(TEMP_PATH, tmp_file_name) # f = file(tmp_file, 'w') f = file(view.file_name(), 'w') f.write(text.encode('utf8')) f.close() window = sublime.active_window() # v = window.find_open_file(tmp_file) v = window.find_open_file(file_name) if(not v): window.open_file(file_name) # window.open_file(tmp_file) window.focus_view(view) window.run_command('close') window.focus_view(v) sublime.status_message('gbk encoding detected, open with utf8.') def saveWithEncoding(view, file_name = None, encoding = 'gbk'): if(not file_name): file_name = view.file_name() reg_all = sublime.Region(0, view.size()) text = view.substr(reg_all).encode(encoding) gbk = file(file_name, 'w') gbk.write(text) gbk.close() class EventListener(sublime_plugin.EventListener): def on_load(self, view): gbk2utf8(view) def on_post_save(self, view): parts = view.file_name().split(SEPERATOR) if(view.file_name().startswith(TEMP_PATH) and len(parts) > 1): file_name = urllib.unquote_plus(parts[1].encode('utf-8')).decode('utf-8') saveWithEncoding(view, file_name) class SaveWithGbkCommand(sublime_plugin.TextCommand): def __init__(self, view): self.view = view def run(self, edit): file_name = self.view.file_name() if(not file_name): return parts = file_name.split(SEPERATOR) if(not file_name.startswith(TEMP_PATH) and len(parts) <= 1): saveWithEncoding(self.view) sublime.active_window().run_command('close') sublime.active_window().open_file(self.view.file_name()) else: sublime.active_window().run_command('save') class SaveWithUtf8Command(sublime_plugin.TextCommand): def __init__(self, view): self.view = view def run(self, edit): file_name = self.view.file_name() if(not file_name): return parts = file_name.split(SEPERATOR) if(file_name.startswith(TEMP_PATH) and len(parts) > 1): file_name = urllib.unquote_plus(parts[1].encode('utf-8')).decode('utf-8') saveWithEncoding(self.view, file_name, 'utf-8') sublime.active_window().run_command('close') sublime.active_window().open_file(file_name) else: sublime.active_window().run_command('save')