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-binmingw32-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的版本
      在这里插入图片描述在这里插入图片描述

配置运行环境

  • 打开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,在其中添加以下代码,然后保存
   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语言程序的编程了


以上内容均属原创,如有不详或错误,敬请指出。

以上是关于sublime无法编译中文的主要内容,如果未能解决你的问题,请参考以下文章

sublime text 无法编译??、

sublime text 2无法显示java编译的结果

解决Ubuntu下sublime3无法输入中文

sublime 显示 python 错误信息

Ubuntu 14.04 Sublime Text3 Java编译运行(最简单的方法)

怎么设置sublime text 3使得它能够编译 latex?