之前用的时候都一切正常,今天突然就出现了这个问题。按ctrl+b执行的时候结果只有空白,查了很多文章都只提到了中文路径、系统路径等等,没有解决问题,直到看到了这篇文章:http://384444165.iteye.com/blog/1798107

文章中提到,Sublime Text 2  ctrl+b 如果出现运行为空白,按ctrl+`来显示错误,如果错误是UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc0 in position 9: ordinal not in range(128),那么就和我遇到的情况一样了。

这个问题的起因是配置文件目录下PackagesDefault目录下的exec.py在编辑环境变量,但是环境变量中的字符集缺少了ascii字符集。

解决方法如下:

找到配置文件目录位置(在sublime text 2中点Preference -> Browse Packages)在Default目录下找到exec.py,编辑;

找到以下两行:

1
2
        for k, v in proc_env.iteritems():
            proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

更改为:

1
2
3
4
5
6
        for k, v in proc_env.iteritems():
            try:
                proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
            except UnicodeDecodeError:
                print("Encoding error")
                print("VARIABLE: ", k, " : ", v)

就能够解决问题了。