计算机系统应用教程网站

网站首页 > 技术文章 正文

Sublime Text4 4169 批处理调试控制台显示中文乱码解决和避坑小记

btikc 2024-09-09 01:40:12 技术文章 17 ℃ 0 评论

问题一、批处理调试控制台显示中文乱码

问题二、右键菜单项里的open with sublime text的Icon图标缺失

右键菜单项里的open with sublime text的Icon图标缺失

最近闲的,学习一下批处理命令,想起来sublime text轻量级便捷开启迅速,于是重新安装了最新版本的sublime text4-4169,卸载sublime text3,重新配置text 4。记录一下使用过程的小坑。

下载、安装、配置、使用

适用范围:用于Windows 下Sublime Text4 4169版本的安装和激活

官网下载地址:https://www.sublimetext.com

64位版本地址:

https://download.sublimetext.com/sublime_text_build_4169_x64_setup.exe

32位版本地址:

https://download.sublimetext.com/sublime_text_build_4169_x32_setup.exe

安装:

默认安装,一直 下一步next 下一步 既可以。安装后部分电脑有可能出现右键菜单项里的open with sublime text的Icon图标缺失,可以在注册表位置

计算机\HKEY_CLASSES_ROOT\*\shell\Open with Sublime Text

下面修改并添加 数值名称:Icon,数值数据:C:\Program Files\Sublime Text\sublime_text.exe

修改注册表如图,

最终结果图

正常显示图


激活:

方法一:替换“C:\Program Files\Sublime Text”下文件sublime_text.exe。附下载替换文件下载地址:此处无法链接

方法二:修改文件exe文件的值

使用sublime text 打开安装目录下的sublime_text.exe文件。(自己打开自己,有点一意思吧,修改后另存为。。。)

Ctrl + F 搜到到

80 7805 000f

94c1

更改为

c6 4005 0148

85c9

注意:80 7805 000f和94c1是在两行,搜索可以直接替换

简单配置 1、软件安装中文语言包

1、点击菜单栏Tools—>Install Package Control 跳出弹框点击 确定按钮

2、点击菜单栏 Preferences – Package Control

3、弹框中输入 install package,选中 Package Control: Install Package 然后等待弹窗(可能需要耐心等待一段时间)

4、等出现如下弹窗后, 在弹窗的搜索框中输入 ChineseLocalizations , 点击出现的选项

5、等待一段时间,如果出现了如下画面则汉化步骤全部完成

6、后续若需要更改,可点击菜单栏 帮助-–>Language 选择进行更改。

第一个细节:如果在使用Sublime Text过程中,如果不小心按下Esc键就会进入command mode(Vim模式),之后就出现不能输入任何东西,关闭当前编辑文件重新打开可以解决。但是很影响连贯性,所以可以通过以下方法解决:

Sublime Text使用过程中进入Vim模式,可以关闭vim模式:

进入settings,加入:

// 关闭Vim模式,防止Sublime Text使用过程中进入Vim模式

"ignored_packages":

[

"Vintage"

],

如果不想禁用Vim模式,又无意进入Vim模式可以进行以下操作退出Vim模式:

按a键 或者i键 或者o键三个按键中任何一个就可以回到insert mode,也就是编辑模式

当然还可以:在软件菜单里找到设置,会弹出Json格式的文件,也就是Sublime Text的配置文件。

对,是配置文件,不是图形化界面。也是Sublime任性,设置页坚决不用GUI显示,只用配置文件。

很简单,找到User 配置(Preferences.sublime-settings)这个文件,然后将ignored_packages数组中的Vintage数值删除即可,然后就变为Vim和Sublime模式通用了。如果再屏蔽vim模式,只要再将Vintage加回去该数组即可。

下面是简单应用场景:

Sublime Text 4 运行批处理文件 .bat格式

Sublime Text 4 编辑好 windows 批处理文件后,如果希望直接在 sublime 内部运行,并且看到运行结果,可以使用 sublime 提供的编译系统(Build System)完成。

首先,新建一个编译系统

Tools -> Build System -> New Build System..

这时 Sublime 会帮你新创建一个叫 untitled.sublime-build 的文件,里面原来的内容是这样:

{

"shell_cmd": "make"

}

替换为下面内容:

{

"cmd": ["cmd.exe", "/c", "${file}"]

}

或者简单点也行:

{"cmd": ["$file"]}

保存文件,在弹出的路径选择框中,不需要选择其他路径,直接按默认路径保存,一般来说是下面这样的路径:

C:\Users[用户名]\AppData\Roaming\Sublime Text 4\Packages\User

保存的文件名则按照你希望的菜单里出现的样子,比如名字叫做 DosRunBatch.sublime-build, 保存后,Build System 菜单里就会出现你刚刚创建的 DosRunBatch名字,选择后,就能按键盘快捷键 Ctrl + B 直接运行 windows 批处理文件,效果如下:

使用过程避坑:

图一:控制台不能显示中文或是部分中文显示乱码,具体表示:

  1. 使用ANSI编码保存的bat文件在sublime text编辑界面会乱码,控制台显示中文乱码。
  1. 使用UTF8I编码保存的bat文件在sublime text编辑界面正常,但控制台显示请按任意键继续. . .字样会乱码。而文件中的中文echo回显没有问题,如图:

原因和解决办法:

  1. Bat文件格式原始编码为ANSI。在cmd窗口运行时候可以看到显示是正常的。

想要sublime text显示正常的临时解决办法是:

编译系统文件增加一行代码"encoding":"cp936".

{

"cmd": ["cmd.exe", "/c", "${file}"],

"encoding":"cp936",

}

2、Bat文件格式原始编码为UTF8。在cmd窗口运行时候就是中文乱码,而在sublime text调试确是正常的()仅仅是cmd下(请按任意键继续. . .)几个字符乱码。但是在cmd窗口调试echo回显中文直接乱码,如前面的图片

想要cmd窗口运行调试显示正常的临时解决办法是:

在批处理首行加上:chcp 65001,结果如图:

上面有点绕,总结就是原始文件保存格式为ANSI和UTF8会有区别。

Cmd运行下ANSI编码格式bat文件正常,UTF8编码格式bat文件-乱码

Sublime text调试控制台显示ANSI编码格式bat文件乱码,UTF8编码格式bat文件正常。

解决办法:

一、Cmd运行下

ANSI编码格式bat文件正常无需处理。

UTF8编码格式bat文件-乱码处理:bat文件首行添加chcp 65001。

二、sublime text控制台调试下

ANSI编码格式bat文件控制台乱码处理:

编译系统文件增加一行代码"encoding":"cp936".

{

"cmd": ["cmd.exe", "/c", "${file}"],

"encoding":"cp936",

}

UTF8编码格式bat文件正常无需处理

{

"cmd": ["cmd.exe", "/c", "${file}"],

// "encoding":"cp936", UTF8编码格式bat文件的编译系统切换为无encoding

}

附记sublime text4配置python:

sublime text配置python的编译系统和调试过程中中文显示乱码

Build system构建系统的示例:同前面描述一样构建系统是 JSON 文件 并具有扩展名python3.sublime-build

{

"cmd": ["e:/vevn/env/Scripts/python.exe","-u","$file"],

"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

"selector": "source.python",

"env":{"PYTHONIOENCODING": "utf8"}

}

示例的解释:

{

"cmd": ["此处为python安装程序的全路径", "-u", "$file"],

"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

"selector": "source.python",

"env":{"PYTHONIOENCODING": "utf8"}此处解决显示中文乱码问题

}

以上亲测有效---针对本机和本版本:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表