前段时间入了个树莓派zero 2w玩玩,因为性能比较捉急,所以没有装桌面环境。
登进去就是tty的界面了。

只有16色呢,没有办法显示中文。可以再给力一点吗?问了GPT给我推荐了几个不用装桌面环境的终端模拟器,试试看。
fbterm
一开始尝试了fbterm。它很轻量,可以支持unicode,看起来不错呢。安装了,字体怪怪的,先设置了一下.fbtermrc。
然后就是测试

下面那行颜色乱码了。其实原来用bash的时候更糟糕,连下面prompt,之后的都是乱码。我看了半天也没找到怎么办。更讨厌的是fbterm的256色模式是自己的标准,说是可以设置TERM=fbterm但其实好像别人都不认的。

感觉不太行。
yaft
然后我尝试了yaft,好像是个日本人写的。好处是很小巧,我是git clone下来直接make,sudo make install就安装好了,很方便。
真正的256色,看起来不错。

唯一的问题是:它用的是bitmap字体,调字号很麻烦,要下载有bdf格式的字体,就挺少的。它预设的是milkjf,是个黑科技日文字体,不过显示中文乃至更多的unicode就别想了,也没有其他大小的。
kmscon
最后我转向了更强大的kmscon,它很强大,支持unicode很好,支持真彩色的!直接apt安装了,他配了systemd,重启了一下,发现tty已经被kmscon接管了。
测试一下真彩色,效果没话说:

Vim的问题
不过紧接着就遇到了一个神必问题:我发现我的vim运行不正常了,使用vim打开文本文件后,屏幕并没有刷新,还是在终端之前打印的内容,然而vim确实在运行,我也可以通过hjkl控制光标。
我在ArchWiki找到了对应的troubleshooting(https://wiki.archlinux.org/title/KMSCON#Vim_does_not_clear_terminal_output):
Vim does not clear terminal output
Vim might open without clearing the terminal output, it is still possible to edit the file but the text will not be visible until it is changed. As a workaround, try setting the environment variable
TERM=vt220. Alternatively, another vim-like editor like vi or Neovim might work.Note Color support is not available if
TERMis set tovt220.
它告诉我,设置TERM=vt200,我试了确实可以的。然而这样的话颜色支持也就没有了。还是不是很满意,这样的话我的真彩色还有何意义?
不过无敌的GPT大人给了我建议,在.vimrc设置:
1 | set t_ti= t_te= |
禁用 smcup/rmcup。然后,居然就可以了呢,总之颜色可以用了!
赶紧试了个真彩色的主题,感觉不错呢(好像没拍出来):

一些别的设置
现在f1到f6都是被kmscon接管的,那我原来的linux终端(默认的 agetty@tty1)呢?
先修改tty.service的配置:
1 | sudo systemctl edit kmsconvt@tty1.service |
加上参数:
1 | [Service] |
把其他的都关掉(好像其实不需要):
1 | sudo systemctl mask kmscon@tty2.service |
然后,发现f1回来了,f2~f6仍然是kmscon。大概是kmscon单进程模式了,还是可以模拟别的虚拟终端。
差不多可以用,就这样吧。有什么用呢?例如我可以在f1再用别的虚拟终端(
- 本文作者: Frankenstein
- 本文链接: https://salty-frankenstein.github.io/blog/2025/09/20/【杂记】折腾终端/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!