最新消息:20210917 已从crifan.com换到crifan.org

【基本解决】Win10中VMWare中macOS中VSCode的终端中部分字母如c或s不显示

显示 crifan 845浏览 0评论
折腾:
【未解决】VMWare中macOS中VSCode无法启动Python项目的调试
期间,此处在Win10中VMWare中的macOS系统中
出现个小问题:VSCode的终端显示中,部分文字不显示了
比如下面的:crifan中的c,不显示了
但是实际上本身字符是存在的
因为拷贝后,去别处可以粘贴出来的
背景:在之前很久没用,现在重新进入macOS,使用了没一会。
以及也根据提示升级了VSCode到了最新的1.50.0版本了
另外,刚才已重启了macOS了。
重启之前,也出现过类似的终端中,字母s不显示,导致很多内容看起来怪怪的
比如:
python --version
其中的s不显示,看起来就变成了:
python --ver ion
了。
以及也想到其他,虽然没关系,但是或许和VMWare中macOS系统有关系的问题:
很久之前,也遇到了,以及现在也无法消除的是:
VMWare中macOS中finder中,多tab的内容,背景是黑色,导致内容看不清楚:
所以此处,暂时不清楚,是macOS的问题,还是VSCode的问题
去网上找找,看看别人是否遇到类似问题
VMWare macOS VSCode terminal part some char not show
macOS VSCode terminal part some char not show
VSCode terminal part some char not show
VSCode terminal  some char not show
VSCode terminal  not displayed some char
好像有设置?
Console.OutputEncoding = System.Text.Encoding.Unicode
抽空试试?
感觉不对。
此处不是特殊的,不是unicode不能显示
而是 普通的单个字符 比如c 比如s 等,无法显示
并且,此处新建一个终端后,问题依旧:
此处还是 c 字符 无法显示出来
很是诡异
VSCode terminal  not displayed  char s c
或许是:此处是此处VSCode的集成终端用的是zsh?
其中的font字体有问题?
如果是,换个字体,或许能解决问题?
但是也诡异,即时字体问题,也不应该无法显示普通的 如 c s 等字符啊
试试:
"terminal.integrated.fontFamily": "Monaco, PowerlineSymbols"
试试:
.vscode/settings.json
{
    "files.exclude": {
        "**/.git": true
    },
    "terminal.integrated.fontFamily": "Monaco, PowerlineSymbols"
}
结果:
还真的解决了此问题:
新建的spit分割的左右显示的 2个内置终端
左边是旧的 右边是新的
旧的:c 无法显示
新的:c 可以正常显示
就解决了问题。
此处,通过settings.json配置,显得有些多余,毕竟其他处,比如另外的Mac中VSCode中,就没此问题。
所以,只是单独去给此处VSCode中的设置去改一下字体即可:
去:
Code -> Preferences -> Settings
搜:
terminal integrated font
给:
Terminal > Integrated: Font Family
输入框中,加上额外的:
Monaco, PowerlineSymbols
实现了要的效果:
即:
不用settings.json中加上配置
而只是去设置中,给当前User用户加上配置:
Terminal > Integrated: Font Family
输入框中,加上额外的:
Monaco, PowerlineSymbols
即可实现同样效果。
【总结】
此处Win10中,有VMWare的macOS,其中有VSCode
之前:集成终端中显示字符正常
现在:集成终端中部分 个别 字符串不显示 ,比如 c s
原因:VSCode的集成终端用的是zsh,而zsh内部用的font字体有问题,导致部分字符不显示
解决办法:更换VSCode的集成终端的字体
方案1:在设置中加上字体
步骤:
Code -> Preferences -> Settings -> 搜 terminal integrated font -> Terminal -> 在Integrated: Font Family 的输入框输入:
Monaco, PowerlineSymbols
方案2:给(当前项目的)配置文件中加上字体
步骤:
settings.json
中加上:
"terminal.integrated.fontFamily": "Monaco, PowerlineSymbols"
也可以。
【后记20201015】
遇到了VSCode升级,根据提示去升级
后来遇到提示:
结果重启了VSCode,已更新为1.50.1后,问题依旧:
感觉是:难道自己的设置User的设置,丢失了?
去看看
重新启动VSCode
发现版本的确已更新了最新的1.50.1了:
Version: 1.50.1
Commit: d2e414d9e4239a252d1ab117bd7067f125afd80a
Date: 2020-10-13T14:53:05.704Z
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: 8.3.110.13-electron.0
OS: Darwin x64 18.5.0
那去看看设置里
是有设置的值的
去掉值
加到settings.json中
但是,新建一个,貌似可以了:
但是再单独新建一个,问题依旧:
但是奇怪的是:
输入命令中的c是可以看到的
crifanli
但是命令提示前面的内容中的c,不显示
rifanli
参考
去改为单个的值
"terminal.integrated.fontFamily": "Monaco"
或者是分开的写法
"terminal.integrated.fontFamily": "'Monaco', 'PowerlineSymbols'"
后来试了试
"terminal.integrated.fontFamily": "PowerlineSymbols"
效果明显:
立刻显示出对应字体了,还有提示:
当时没截图,记得大概是:只支持Monaco?相关字体??
找到了提示:
The terminal only supports monospace fonts. Be sure to restart VS Code if this is a newly installed font.
所以最好去搞清楚
找到VSCode当前支持哪些字体?
已安装了哪些字体?
vscode installed font
In the default settings, VS Code uses the following fonts (14 pt) in descending order:
* Monaco
* Menlo
* Consolas
* "Droid Sans Mono"
* "Inconsolata"
* "Courier New"
* monospace (fallback)
const DEFAULT_WINDOWS_FONT_FAMILY = 'Consolas, \'Courier New\', monospace';
const DEFAULT_MAC_FONT_FAMILY = 'Menlo, Monaco, \'Courier New\', monospace';
const DEFAULT_LINUX_FONT_FAMILY = '\'Droid Sans Mono\', \'Courier New\', monospace, \'Droid Sans Fallback\'';
即:
mac中字体支持:
  • Menlo
  • Monaco
  • Courier New
  • monospace
分别去设置,看看效果
Menlo:貌似可以的
缺点:source中的s,还是无法显示
但是后续新建terminal,以及terminal中的tab,c都可以正常显示
Monaco:不可以
新建terminal和terminal中新建tab,c都无法显示
Courier New:不可以
s不显示
monospace:基本可以
但是路径中的s不显示
或者说有时候显示,有时候不显示
意思是:先要在你电脑(Win 或 Mac等)中安装对应字体,然后才能用该字体
算了,目前还是暂时:
用Monaco
结果:
终端中 s 不显示了。。
郁闷。
去加到配置中
另外看到了:
Editor: Font Family
Controls the font family.

Menlo, Monaco, 'Courier New', monospace
默认是已经有这几个字体了。
但是,难道,此处VMWare中macOS中没有安装好这几个字体?
去找找macOS中已安装的字体
macos installed font
所有字体中 有很多字体
另外,还有用户自己安装的字体
感觉:
Meslo LG M for Powerline
等字体,是折腾zsh时安装的字体?
难道是zsh的字体本身安装的有问题?
那去确认和重新选择zsh的字体试试?
然后看看效果
没变化。
突然发现,可以设置VSCode中启动的终端是external的:
此处先用默认的:
Terminal.app
即Mac自带默认的终端试试
貌似问题就好了
但是还有小问题:
新建terminal时,c不显示
之后terminal中新建tab时,c和s完全都正常了
去换成:iTerm.app
试了多次,最后基本上,算是没问题:
【总结】
此处,VSCode中的terminal终端的字符显示异常,有时候c或s不显示
且往往是 新建一个terminal时会出现
往往terminal中新建tab时,却又可以
但有时候正常输入命令和输出结果时,又出现c或s不显示的问题
最终办法:
把terminal从integrated换成external,且MacOS中terminal用自己此处的iTerm.app
至少暂时可以规避此诡异问题。
根本原因暂不确定,待以后有空再深究。

转载请注明:在路上 » 【基本解决】Win10中VMWare中macOS中VSCode的终端中部分字母如c或s不显示

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
90 queries in 0.193 seconds, using 23.35MB memory