说明:看了一下,距离发布上篇文章都快半年了🤦♂️很抱歉这段时间由于各 (wo) 种 (de) 原 (lan) 因 (duo) 迟迟没有更文,实际上我有不少东西准备和大家分享的。。。目前研一上学期已经结束,虽然自己水平都没有多少提升,但期间也积累了一些想法,在后面我尽量坚持多写写,没人看不要紧,就当是自己的一个记录了✨
研究生期间,可能我主要方向会集中在车联网仿真的这部分,会用到 SUMO、Veins 和 OMNeT++ 等工具,之后有机会也写一些关于它们的文章~~~ (虽然自己现在才刚开始学习。。。)
以下是正文:
因学习需要,要用到 Veins 官网提供的虚拟机镜像,里面已经安装好了配套的软件,Linux 版本是 Debian。由于这个虚拟机镜像是英文版本的,没有中文的环境和输入法,在配置的时候遇到了很多麻烦,折腾了一下午,看了网上无数文章,也没有能够很完美地解决这个问题的。最后各种折腾,总算是能够使用中文输入法了。于是愤而记之,免得以后再遇到。
(这个镜像还有个很烂的地方必须吐槽下,就是它的终端不识别 Enter 回车键!每次输入一行命令都要点一下菜单栏的 reset 才能识别一次回车,贼恶心😤不知道是只有我这样还是所有都是这样。最后也是花了半天才解决,就是先下载 fish shell,然后将其设置为默认终端,这样以后打开终端就直接进入了 fish shell。不过,阮一峰大佬在博客中建议,“由于 Fish 的语法与 Bash 有很大差异,Bash 脚本一般不兼容。因此,我建议不要将 Fish 设为默认 Shell,而是每次手动启动它。”)
注意:我使用的版本是英文版本的 Debian GNU/Linux 10 (buster) ,因此遇到的情况和我一模一样的同学可能比较少,如果折腾了半天还是无法输入中文,就不妨试试下面的方法。由于版本可能不同,情况会略有区别,但思路是类似的,可以参考下
更换软件源
开始之前,建议切换一下 deb 源,这样下载速度会快不少。
sudo gedit /etc/apt/sources.list
可以先备份一下里面的内容,然后选中全部,替换为下面的内容:
deb http://mirrors.163.com/debian/ buster main non-free contrib
deb http://mirrors.163.com/debian/ buster-updates main non-free contrib
# deb http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ buster main non-free contrib
# deb-src http://mirrors.163.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
其实我在网上没找到 Debian10 (buster) 的源,就把之前一个版本里的代号都换成了 buster,居然可以运行~~~ 点击保存并关闭,最后执行:
sudo apt-get update
没报错就说明没问题,如果报错,可以试一下把 sources.list 里对应的链接去掉再试试。。。
配置中文环境 & 安装中文输入法
首先我们添加对中文的支持:
sudo apt-get install locales
然后然后配置 locales 软件包:
sudo dpkg-reconfigure locales
就可以看到下图:
用方向键移动,空格键选择,Tab 键切换位置。从图中可以看到,出了默认选中的 en_US.UTF-8,我还选择了和中文有关的四个选项。选择确定,在下图中选择 zh_CN.UTF-8 并确定。(有些博客说要选 en_US.UTF-8,但有另外一篇博客说,中文输入法肯定是需要中文的区域设置的,我觉得有道理。)
接下来安装输入法,网上的博客有的说安装 fcitx 中文输入法经常还是不能输入中文,有的说安装搜狗输入法容易出各种各样的问题,我最终选择了安装 fcitx 中文输入法。要注意的是,建议只安装一种输入法,把其他不相关的用不上的输入法卸载了,以免引起未知的冲突。
实际上系统应该是自带了 fcitx,首先在菜单搜索输入法或 input 的前几个字母,打开可以看到下面的界面:(如果找不到,尝试 sudo apt-get install im-config
安装输入法配置,然后用 im-config
命令打开)
然后连续两次点击确定,选择 fcitx 并确定,可以看到下图:
实际上这个图很重要,要好好看一下,里面告诉了我们需要安装什么组件和支持。除了从“简体中文拼音”、“简体中文五笔”和“繁体中文或通用中文输入”三项中选一个(我选了 fcitx-sunpinyin,这是个简约的输入法,感觉还不错),其他提到的组件我们都要安装。依次输入下面的命令:
sudo apt-get install fcitx fcitx-sunpinyin fcitx-table-all fcitx-frontend-all
sudo apt-get install fcitx-ui-classic fcitx-ui-light fcitx-config-gtk3
为了方便看,分成了两条命令。第一条命令就是安装上图中的部件,如果想用别的输入方式可以将 fcitx-sunpinyin 替换成别的。有个小地方要注意就是,图中说的是 fcitx-table*,但我命令中是 fcitx-table-all,这主要是因为我使用的终端是 fish shell,不识别这样的写法,我也懒得细究官网文档的写法。。。然后看到其他博客有写成 fcitx-table-all 的我就这么写了🤦♂️另外图中说了 fcitx-frontend-all 覆盖了所有图形界面平台支持,因此安装这个组件就相当于安装了一堆别的组件,更简洁。
第二条命令,前两个是关于输入法的界面的,第三个是和输入法的配置有关的命令,马上就会用到。
接下来就是最后的设置了。分为两步,第一步是配置输入法,输入命令 fcitx-config-gtk3
即可看到下图的界面:
点击左下角的加号,就可以添加输入法了,选择 Sunpinyin 添加即可。这里你显示的输入法可能比我多,这是因为我把用不上的都去掉了。注意:这里我我把 Sunpinyin 移到了第一个,和图下方的提示“通常需要将键盘或键盘 - 布局名称放在第一位”是相悖的。这是因为经过多次尝试我发现,似乎放在第一位的就是默认强制使用的。
可以看到,在菜单栏还可以进行很多其他的设置。其中下图的设置很重要,就是红色箭头对应的那两个设置。我的思路是:经过这样的配置,Sunpinyin 就是我们默认使用的中文输入法,通过按下 Ctrl + Shift 我们可以切换到英文输入法,即上图中第二位的英语键盘。这样就实现了中文的输入和中英文的切换了。
第二步是配置输入源。打开系统设置,找到“区域和语言”进行设置,如下图所示:
将语言和格式设置为中文后,就可以看到系统的英文界面变成了中文。有些博客还下载了中文的一些字体,因为在高分辨率情况下的系统字体看起来会觉得小。其实我觉得系统自带的也挺好看的 : )
需要注意的是图片下方输入源的设置。这里虽然只看到英语输入源,并没有添加汉语输入源,但并不影响 fcitx 输入法的使用,我也不知道为什么会这样。。。请明白的高手在评论里指点一二,感谢! (。・∀・)ノ
事实上,经过尝试,在我的虚拟机里,是否添加汉语输入源,效果是一样的,打字时系统可以切换为汉语输入源和英语输入源(用 Ctrl + Space 切换),但不论是哪种输入源,都可以输入英文和中文(用 Ctrl + Shift 切换)。所以我干脆只保留了英语输入源,在打字时用 Ctrl + Shift 切换中英文输入,而且虚拟机屏幕右上角既没有 en 或 zh 的提示,也没有像搜狗输入法那样的小图标。
还有一点比较奇怪的是,添加输入源的时候点击汉语,出现了下图中的两个选项,不知道第一个是怎么来的,但如果我选了第一个,每次切换输入源到它的时候系统就卡死不动了,也不知道是什么原因。。。希望知道的同学告知一下原因。
不管怎样,最终还是顺利地在 Debian10 上配置了中文环境和输入法。可能这并不算得上是个完美的解决方案,但是在这种情况下,能用就好,不是么? : )