前言
在纯命令行环境下中文显示方块,在图形化界面中其实并不乱码,ssh中也不乱码。这个怎么解决呢?在网上搜索了半天,大部分都说是没有安装中文字体。
终于找到解决办法了:
https://bbs.huaweicloud.com/blogs/238855
archlinux实战zhcon
https://aur.archlinux.org/packages/zhcon/
git clone https://aur.archlinux.org/zhcon.git
cd zhcon/
# 安装
makepkg -si
这样就安装完成啦。
在纯命令行模式输入下面命令运行zhcon:
zhcon --utf8
这下中文可以正常显示啦!没有乱码我的目标就已经达到了。
那么中文输入怎么处理的呢?
zhcon的热键:
快捷键 | 说明 |
---|---|
CTRL+ALT+H | 帮助; |
CTRL+D | 退出。 |
输入法热键
快捷键 | 说明 |
---|---|
CTRL+SPACE | 打开/关闭输入法; |
ALT+SPACE | 打开/关闭 |
CJK方式; | CJK方式; |
CTRL+2 | 五笔;/ 全拼; |
编码切换热键
快捷键 | 说明 |
---|---|
CTRL+F1 | 使用GB2312编码了; |
CTRL+F2 | 使用GBK编码; |
CTRL+F3 | 使用BIG5编码; |
CTRL+F4 | 使用JIS编码; |
CTRL+F5 | 使用KSCM编码; |
CTRL+F7 | 切换输入法状态栏风格(光标跟随或底部固定)。 |
CTRL+F9 | 设置内码的识别方式: 按一次:内码手动识别; 按二次:自动识别GB与BIG5码; 按三次:自动识别GB与BIG5码,并用简体中文来显示; 按四次:自动识别GB与BIG5码,并用繁体中文来显示; |
CTRL+F10 | 调出输入法系统菜单; |
CTRL+. | 切换中英文标点 ; |
CTRL+, | 切换中文全角 /半角; |
SHIFT+PGUP | 上卷半屏历史记录; |
SHIFT+PGDN | 下卷半屏历史记录; |
SHIFT+上方向箭 | 上卷一行历史记录; |
SHIFT+下方向箭 | 下卷一行历史记录。 |
中文输入法
CTRL+SPACE 打开或者关闭中文输入法。
但是我试好几次无法切换到五笔输入法。
修改默认输入法变成五笔
无法切换可能是快捷键冲突导致的,我把来把五笔设置成默认输入法,曲线救国。
vi /etc/zhcon.conf //编辑zhcon配置文件
将想用的五笔输入法行拷贝到全拼输入法前面即可。当然,也可采用加#号屏蔽不需要的,这样不会出错。
如果显示中文乱码,可以在vim 中执行:edit ++enc=gb18030
就可以解决乱码的问题了。
#change input method here
#the first ime is the default ime when press CTRL_SPACE
#only the first nine imes are avaiable to zhcon
#you can add more ime from Chinput's config file
#format: ime = imename,module,table,encode,type
#imename := <input method's name>
#module := <module file name>
#table := <table file name>
#encode := gb2312 | gbk | big5
ime = 五笔,,input/wb.mb,gb2312,native
ime = 全拼,,input/winpy.mb,gb2312,native
ime = 双拼,,input/winsp.mb,gb2312,native
ime = wz1,,input/big5-ary30.mb,big5,native
ime = wz2,,input/big5-cj.mb,big5,native
ime = wz3,,input/big5-phone.mb,big5,native
ime = wz4,,input/big5-liu5.mb,big5,native
ime = 全拼2,,input/py.mb,gb2312,native
ime = 双拼2,,input/py.mb,gb2312,native
ime = 大众,,input/dzm.mb,gb2312,native
ime = 英中,,input/ed.mb,gb2312,native
ime = 简拼,,input/jp.mb,gb2312,native
ime = 普通,,input/pt.mb,gb2312,native
ime = 五笔二维,,input/wbew.mb,gb2312,native
ime = 五笔划,,input/wbh.mb,gb2312,native
ime = 繁体仓颉,,input/cjf.mb,gb2312,native
ime = 简体仓颉,,input/cjj.mb,gb2312,native
archlinux实战kmscon
上面的方法可以成功解决了我的问题,无意中又百度到了kmscon这个方法。我也来实战一下,对比一下哪个更好用吧!
安装
# 更新系统
pacman -Syyu
# 安装kmscon
pacman -S kmscon
在 tty1 上一般有特殊的 systemd 配置。出于保守的策略,你可以继续在 tty1 上使用传统的 getty 而只在其他虚拟终端上运行 kmscon ,或者你可以用 kmscon 替换 getty。
要在 tty1 上启用 kmscon:
systemctl disable getty@tty1.service
systemctl enable kmsconvt@tty1.service
现在千万不要重新启动系统,不要重启! 否则会显示一堆方框,不要问我怎么知道的。。。(因为中文字体还没有安装)
安装中文字体
pacman -S ttf-dejavu
pacman -S wqy-microhei
中日韩文字支持
Kmscon 通过默认的字体引擎 pango 支持渲染中日韩文字。但是, 必须为 fontconfig 设置全局配置,来将等宽字体映射到合适的中日韩字体上。我们为中文用户提供如下配置模板。此模板可以满足中文字体渲染要求:
vim /etc/fonts/conf.d/99-kmscon.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>DejaVu Sans Mono</string>
<string>WenQuanYi Micro Hei Mono</string>
</edit>
</match>
</fontconfig>
mkdir -p /etc/kmscon
vim /etc/kmscon/kmscon.conf
写入以下内容
font-name=DejaVu Sans Mono, WenQuanYi Micro Hei Mono
重启以后,发现root用户无法直接登录了,可以先登录普通账号在su root 。
如果需要root登录,vim /etc/securetty
最后一行加入pts/0
。
自定义字体
我在使用vim和ranger的时候都会使用Hack Nerd Font 这里有很多精美的字体图标,让终端看起来更舒服。
那么如何使用这个字体呢?
https://download.csdn.net/download/lxyoucan/15407613
把这个字体下载并复制到/usr/share/fonts
并重命名HackNerdFont.ttf
fonts pwd
/usr/share/fonts
➜ fonts ls
HackNerdFont.ttf TTF wenquanyi
然后更新 fontconfig 的字体缓存:
fc-cache -vf
这里在查一下字体列表,发现已经有我们手动安装的字体了。
fc-list
执行结果(部分)如下:
/usr/share/fonts/TTF/DejaVuSans-ExtraLight.ttf: DejaVu Sans,DejaVu Sans Light:style=ExtraLight
/usr/share/fonts/HackNerdFont.ttf: Hack Nerd Font:style=Regular
/usr/share/fonts/TTF/DejaVuSans-Oblique.ttf: DejaVu Sans:style=Oblique
至此说明我们的字体安装成功了。
vim /etc/fonts/conf.d/99-kmscon.conf
vim /etc/kmscon/kmscon.conf
把我们新增的字体(Hack Nerd Font)增加上去就可以了。
这下字体可以正常显示了,如下:
评价
- archlinux软件库直接就可以安装更让人放心
- 支持自定义字体,时髦的字体让人身心愉悦
- 中文输入的问题暂时不知道如何解决