Linux 下中文显示成方块的解决方案

##问题
ubuntu下中文显示成方块。

##解决方案

###说明
版本: 0.192.0 ~ 0.201.0

效果:编辑区域、树形资源管理器、toggles面板、git-plus等插件的中文正常显示。

不足:开发工具中的中文依然显示为方块。

###步骤

  1. 打开 style.less 文件 ( 唤出 Command Palette 找到 Open Your Stylesheet )。
  2. 粘贴下面代码并保存。(其中 "ubuntu mono""ubuntu" 替换为你希望的西文字体名)。
/* 等宽字体 */
@mono-font-family: "ubuntu mono", "Hiragino Sans GB", "Microsoft YaHei","WenQuanYi Micro Hei", sans-serif;
/* 非等宽字体 */
@font-family: "ubuntu", "Hiragino Sans GB", "Microsoft YaHei","WenQuanYi Micro Hei", sans-serif;
html,
body,
ol,
ul,
li,
h1,
h2,
h3,
h4,
h5,
h6,
div,
p,
span,
pre,
section,
input,
textarea,
.atom-panel,
.status-bar,
.tree-view,
.title,
.current-path,
.tooltip {
    font-family: @font-family;
}
.autocomplete-plus span,
code,
.-tree-view-,
.symbols-view,
.editor {
    font-family: @mono-font-family;
}
.editor {
    font-size: 14px;
}
2赞

由于插件都有自己设置的字体,因此目前最苦逼的方式就是直接修改插件的字体。

以插件 markdown-preview 为例,这个时安装自带的,样式文件位于:

/usr/share/atom/resources/app/node_modules/markdown-preview/styles/markdown-preview.less

3,36 行有font-family 设置,按照您的文章里面写的字体就该就行。

至于文件浏览面板,还没有找到解决办法。

1赞

今天看到官方论坛的这个帖子讨论了类似的问题 https://discuss.atom.io/t/unicode-font-support-in-treeview/16310
你可以用 @font-face 指定某个区间(比如中文)的字符使用特定的字体。

Ubuntu 14.10 和 15.04 的话,默认没有安装文泉驿字体,需要先装下 sudo apt-get install ttf-wqy-*

2赞

1.在font family选项中加入文泉驿的字体,比如文泉驿正黑(只有文泉驿的中文字体才能正常显示中文,其他的字体貌似都不行,不知道为什么),然后将你喜欢的字体写在前面,就像这样:

DejaVu Sans Mono,文泉驿正黑

2.参照@reyesyang 说的: 默认没有安装文泉驿字体,需要先装

 sudo apt-get install ttf-wqy-*

3.问题解决.[环境:ubuntu14.04 X64]

1赞

经过我的测试,如果只是在Settings View中添加中文字体。
很多插件(如 git-plus)依然是有方块。

所以我通过Dev Tool审查元素把出现乱码的 tagclass 也指定了字体。
虽然说也没有完全解决问题。

环境 ubuntu14.04 x64 atom 0.194.0

确实还有很多地方有问题.vsc也一样中文问题.就像sublime中文输入问题.官方也是完全没测试这个嘛.不过windows下好像没问题的.

Atom/VS Code 和 Sublime 还不是同一个问题,Sublime 是输入的问题,但是 Atom/VS Code 用的是网页技术,输入上没有什么问题,主要是字体。

提供一个我目前的解决方法:

  1. Ctrl + , 打开 Settings
  2. 将 Editor Settings 下的 Font Family 的值修改为
    'DejaVu Sans Mono', 'Source Han Sans CN'
    

默认的英文字体在前,自己喜欢的中文字体在后。

可能有潜在的问题,我若发现了再更新。

2赞

我知道ATOM和VS Code 是built on Electron的。我只是想说明都有中文上的问题。没办法的中文啦。虽然问题都能解决但都不是完美解决的。

如果只想替换保底的中文(比如宋体)为更好看的,那么可以在Atom的自定义styles.less里,添加:

/*
替换 sans-serif
*/

@font-face {
  font-family: sans-serif;
  src: local("微软雅黑");
  /*no unicode-range; default to all characters */
}

这样,就代替了系统原本的 sans-serif 。而很多包的字体,应该都是以 sans-serif 为保底的。

1赞

一个是在 style.less

/* 等宽字体 */
@mono-font-family:  "Ubuntu Mono", "文泉驿等宽正黑";
/* 非等宽字体 */
@font-family: "Ubuntu", "文泉驿正黑";

一个是在 edit-open your config

"*":
  "exception-reporting":
    userId: "fe150ae1-7895-9104-4d7"
  welcome:
    showOnStartup: false
  core: {}
  editor:
    invisibles: {}
    fontFamily: "Ubuntu Mono, DejaVu Sans Mono, 文泉驿等宽正黑"
    fontSize: 15

另外,把上面的改一下

.autocomplete-plus span,
code,
.-tree-view-,
.symbols-view/*,
.editor*/ {
    font-family: @mono-font-family;
}

.-tree-view- {
  font-size: 14px;
}

把 tree-view 的字体改大点,把 editor 的字体设置取消了

1赞

.editor 使用 atom-text-editor 替换了如:

atom-text-editor {
    font-family: @mono-font-family;
    font-size: 14px;
    line-height: 15px;
}

改配置应该也行。

如果用的UI是 isotope,还需要加入下面代码:

[data-isotope-ui-font='Open Sans'][data-isotope-ui-fontweight='Extra light / Thin'],
[data-isotope-ui-font='Open Sans'][data-isotope-ui-fontweight='Light'],
[data-isotope-ui-font='Open Sans'][data-isotope-ui-fontweight='Extra light / Thin'] atom-text-editor.mini,
[data-isotope-ui-font='Open Sans'][data-isotope-ui-fontweight='Light'] atom-text-editor.mini {
    font-family: @font-family;
}

实测思源黑体也可以,Noto Sans S Chinese

终于懂了. 应该是:
editor:
fontFamily: “DejaVu Sans Mono,文泉驿正黑”

以下是并没有卵用的. 太囧.
editor:
fontFamily: “DejaVu Sans Mono”