sublime无法编译中文
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sublime无法编译中文相关的知识,希望对你有一定的参考价值。
参考技术A 1.在新建文件里输入import sys
print(sys.stdout.encoding)
用ctrl+B进行编译,返回的是“cp936”,用repl解释器交互返回的是utf-8,说明是由于编码不一致导致的之后新建了一个编译系统:
2.来点狠的直接换编译的环境,找到编译文件位置, F:\sublime\Sublime Text Build 3176 x64\Data\Packages\User 根据具体情况找配置文件。
3.
Sublime Text 3配置C/C++编译运行环境
- 之前一直使用的VC++ 6.0来编译运行C语言程序,但是因为每次打中文的注释,总是会出现乱码,加上也不能自动补全符号的另一半,所以一直都是用的Sublime Text 3来写C语言代码,再赋值粘贴到VC中运行,比较麻烦。本篇教程是对于Sublime Text 3中C/c++环境的配置。
下载安装MinGW
- 首先下载MinGW,进行安装,安装位置可以自定义,我的安装位置是
D:\\MinGW
- 安装完成后,选择
mingw32-base-bin
和mingw32-gcc-g++-bin
,右键选择Mark for Installation
- 左上角选择
Installation
-Apply Changes
- 再选择
Apply
,安装完成后,选择Close
配置环境变量
-
安装完成后,配置系统环境变量,依次右击
计算机(我的电脑) -> 属性 -> 高级系统设置 -> 环境变量
- 将
D:\\MinGW\\bin
加入Path--------------寻找gcc编译器的路径 - 将
D:\\MinGW\\include
加入include------Include查找头文件的路径 - 将
D:\\MinGW\\lib
加入lib------------------标准库存放的路径
- 将
-
验证是否配置成功。使用管理员身份运行CMD,输入gcc -v指令,如果输出 GCC 编译器的具体信息,则表示安装成功
-
也可能出现
gcc不是内部命令
的情况,可能是没有以管理员身份运行CMD可以做以下尝试- 以管理员身份运行CMD,再次输入
gcc -v
- 在MinGW的安装目录中打开CMD,输入
mingw-get install gcc g++
执行后,在次查看gcc的版本
- 以管理员身份运行CMD,再次输入
配置运行环境
- 打开sublime,依次点击
Tools -> Build System -> New Build System
(英文版),中文版本如下图所示
- 打开之后删除其中的所有内容,将以下内容复制粘贴到文件中,然后
Ctrl + S
保存文件,文件名修改为myC.sublime-build
(可以自定义),保存的默认位置不会被更改,如果被更改了,重新保存到D:\\Sublime Text\\Data\\Packages\\User
(我的是在这里),如果没有这个文件夹,则保存到C:\\Users\\你的用户名\\AppData\\Roaming\\Sublime Text 3\\Packages\\User
下
{
//"shell_cmd": "make"
"working_dir": "$file_path",
"cmd": "gcc -Wall \\"$file_name\\" -o \\"$file_base_name\\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"selector": "source.c",
"variants":
[
{
"name": "Run",
"shell_cmd": "gcc -Wall \\"$file\\" -o \\"$file_base_name\\" && \\"${file_path}/${file_base_name}\\""
}
]
}
- 同样的方法再创建C++的编译环境,因为Sublime Text自身的控制台不能输入,所以需要需要调用CMD。将以下内容复制到文件中,保存为
myC++.sublime-build
{
// "shell_cmd": "make"
"encoding": "utf-8",
"working_dir": "$file_path",
"shell_cmd": "g++ -Wall -std=c++0x \\"$file_name\\" -o \\"$file_base_name\\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"selector": "source.cpp",
"variants":
[
{
"name": "Run",
"shell_cmd": "g++ -Wall -std=c++0x \\"$file\\" -o \\"$file_base_name\\" && \\"${file_path}/${file_base_name}\\""
},
{
"name": "RunInCmd",
"shell_cmd": "g++ -Wall -std=c++0x \\"$file\\" -o \\"$file_base_name\\" && start cmd /c \\"\\"${file_path}/${file_base_name}\\" & pause \\""
}
]
}
- 保存后重新以管理员身份运行Sublime Text 3,写一个基本的输出语句,Ctrl+S保存后,然后选择
工具 -> 立即编译
、工具 -> 运行
(修改后的代码必须保存后再运行)
# include <stdio.h>
int main(void)
{
printf("Holle World!\\n");
return 0;
}
配置Sublime Text的快捷键
- 每次都需要点工具编译运行,就很麻烦,可以自定义快捷键,来快速编译运行
- 依次点击
首选项 -> 按键绑定-用户
,将一下代码复制粘贴到文件中,下次运行只需要按F5就可以了,也可以根据自己的需要更改前面的快捷键
[
{ "keys":["f5"], "command":"build", "args": {"variant": "Run"} },
]
- 依次点击
首选项 -> 按键绑定-默认
,Ctrl+F搜索ctrl+b
,将ctrl+b
替换成其他快捷键,即可进行编译
无法正常识别错误
- Sublime Text 报错
[Decode error - output not utf-8]
- 在Sublime Text的安装目录下的
Packages\\
目录下找到Default.sublime-package
,将这个复制出来,将后缀改名为zip(只有修改为zip才能打开)解压缩后将其中的exec.py
文件放到Sublime Text的Data\\Packages\\User\\
目录下 - 打开
exec.py
使用 Ctrl + F 搜索ExecCommand
,在其中添加以下代码,然后保存
- 在Sublime Text的安装目录下的
def append_data(self, proc, data):
if proc != self.proc:
# a second call to exec has been made before the first one
# finished, ignore it instead of intermingling the output.
if proc:
proc.kill()
return
#add start
is_decode_ok = True;
try:
str = data.decode(self.encoding)
except:
is_decode_ok = False
if is_decode_ok==False:
try:
str = data.decode("gbk")
except:
str = "[Decode error - output not " + self.encoding + " and gbk]\\n"
proc = None
# Normalize newlines, Sublime Text always uses a single \\n separator
# in memory.
str = str.replace('\\r\\n', '\\n').replace('\\r', '\\n')
self.output_view.run_command('append', {'characters': str, 'force': True, 'scroll_to_end': True})
到此,Sublime Text 3中对C/C++的环境部署就完成了,之后就可以使用Sublime Text来进行C语言程序的编程了
以上内容均属原创,如有不详或错误,敬请指出。
本文链接: https://blog.csdn.net/qq_45668124/article/details/117160162
版权声明: 本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0 许可协议。转载请联系作者注明出处并附带本文链接!
以上是关于sublime无法编译中文的主要内容,如果未能解决你的问题,请参考以下文章