彻底解决mac使用输入法出现卡顿延迟的问题

1、介绍

网上有各种方法,例如有touchbar的macbook关闭输入建议;定时重启“简体中文输入法”进程;关闭“显示器具有单独的空间”

这些方法网上都能看到,有些人说能解决,有些人说还是卡,我试过了问题依然存在。

网上还有一种思路就是换第三方输入法,一般推荐的都是搜狗输入法或者百度输入法,这个方法确实能一定程序上缓解这个问题,但是我用下来还是治标不治本。

在使用这两种输入法的时候,偶尔还是会发现有卡顿现象,只是比系统自带输入法出现卡顿的频率降低了很多,但随之而来又带来了新的问题,一个是这些输入法在后台联网,会传输你的数据,这个问题其实可以用防火墙禁止其联网来解决,但另一个问题就比较难解决了,由于这种第三方输入法非常臃肿,而且你根本不知道他会在后台干什么,所以你只要看一下后台进程占用,你就会发现他们非常占用cpu和内存,远比自带的输入法高很多,甚至搜狗输入法你用了一段时间后会发现它对你的硬盘写入读取量非常高,有些甚至高达几十个G,明显非常不合理。

所以如果能找到一个非常轻量级的输入法,就可以很好的解决输入卡顿的问题。

这里推荐Rime这个输入法,在mac平台的中文名叫“鼠须管输入法“。

这个输入法最大的特点就是开源,并且高度定制化。这就让它的代码非常透明,不臃肿且能让我们随意修改它的相关配置。

想要具体了解这款输入法可以自行移步官网查看,这里只是介绍用这款输入法可以彻底解决mac输入卡顿的问题。

因为这个输入法上手难度比一般软件还是高一些的,所以我这里也做一个简单的上手记录。

2、安装鼠须管输入法

官网直接可以下载到mac的安装包

下载后正常安装即可。安装完毕需要激活此输入法,在设置-键盘里去添加

在配置完输入法之前建议不要把自带的”简体中文输入法“移除,如果配置好之后,就可以像我这样移除掉”简体中文输入法“只留下鼠须管和英文输入法(英文输入法无法移除)。只要移除了,该输入法就不会在后台运行了。

然后你就会在状态栏的输入法图标里看到这个输入法了

注意,如果鼠须管输入法想要通知权限,我们最好给它,因为后面会发现很有用。

至此,安装完毕。

现在你可以直接试一下用这个输入法打字了,看看还有没有卡顿的现象,如果已经没有了,那么恭喜你,此方法对你有效,你可以接下来对这个输入法进行配置了,主要就是配置词库,皮肤这两大块输入法的核心。如果你还是觉得打字会卡顿,那你可以再参照文章开头说的网上的一些解决方法,比如关闭touchbar的输入建议,然后再试试用这个输入法打字。

其实通过我的尝试发现偶尔的卡顿并不是输入法的问题,比如你在系统自带的英文输入法下敲回车,有时候也会卡一下,这个其实就是系统卡顿的原因。我实测重装系统后,系统里什么文件和软件都没有的情况下,使用系统自带的”简体中文输入法“根本不会出现卡顿,所以现在这个卡顿多少跟你系统文件或者后台软件多有一定的关系,所以这一块的问题就需要你去清理一下系统,删除非必要文件和软件,或者看看有没有安装某些破解软件导致中毒,比如挖矿木马或者被植入后门程序。

3、配置鼠须管输入法

刚刚测试打字的时候你可能会发现打出来的字是繁体,并且候选词非常不准,不要急,接下来我们需要配置一下输入法。

输入法的配置文件全部都在~/Library/Rime这个文件夹下,直接通过访达前往

默认状态下,这个文件夹里面只有几个文件,如果你直接在这个基础上配置会很麻烦,所以推荐的方法是使用其他人做好的配置文件,然后在他们的基础上去修改,这样就会方便很多。

这里推荐”雾凇拼音“这份配置文件

https://github.com/iDvel/rime-ice?tab=readme-ov-file

这份配置文件在github上stars高达6.1k,比鼠须管输入法在github上的4.2k的stars还高

这份配置文件的使用非常简单,只需要把所有代码下载下来

然后解压下载好后的压缩包,把里面所有的文件,直接移动到鼠须管的Rime配置文件夹里即可

然后点击状态栏的鼠须管输入法图标里面的”重新部署“(注意!每次修改Rime下的文件都必须点击“重新部署“才会生效!)

接下你就会看到鼠须管输入法的通知提示,这就是我刚刚让你不要鼠须管输入法的通知权限的原因。

部署完成也有通知提示,这样你就可以再试试输入法了。现在应该变成简体中文并且候选词精准很多了。

然后你只需要根据“雾凇拼音”这份配置文件进行自定义修改,即可打造属于你自己的输入法了

https://dvel.me/posts/rime-ice

这就是雾凇拼音的开发者提供的一份文档,你需要仔细阅读这份文档,因为这份文档说的非常详细了,该提到的内容都提到了,我这里只是简单分享一下我自己的一些修改

4、个人配置分享

1)精简无用功能

首先因为我不使用双拼,所以首先就把双拼的功能全部删掉

打开Rime文件夹下的default.yaml文件

这里已经给出了删除方案,我直接把这几行代码全部删除,然后去对应文件夹里面删除掉这些文件即可(记得点击”重新部署”才能生效)

(下面还有个t9.schema.yaml文件也删掉)

然后这个雾凇拼音还自带了两个功能就是英文输入和两分拼字。

英文输入就是你在输入法里也能打出英文来,例如你输入“key”本来你只是想打出“可以”,但是因为刚好匹配了key这个单词,所以输入法的首选候选字就是”key”,对于我这种一般不需要打英文的人来说,这样反而影响了我中文输入的效率,所以我需要把这个功能关掉。

两分拼字其实就是为了方便你打出生僻字设计的,只要你认识去偏旁的这个字,那就可以用拆分组合的方法打出这个字来,如下图。

这个功能我也不需要,所以也要禁用。

在雾凇拼音的文档中给出了删除这两个功能的方法

在rime_ice.schema.yaml这个文件里面

我直接是注释掉

上面这个melt_eng和liangfen这两段代码其实直接删掉更好,我只是根据文档说明注释掉dictionary代码

然后最好把相关文件也删掉

(记得一定要点击”重新部署”才能生效)

还有一个emoji表情我也用不上,但是触发概率很高,候选词里经常会出现几个emoji表情,我们也可以禁用掉

打开rime_ice.schema.yaml文件

通通注释掉

然后删除Rime/opencc文件夹下的两个emoji文件

(记得点击”重新部署”才能生效)

2)替换系统英文输入法,更有效解决卡顿

有的时候发现中文切换英文的时候会卡顿,其实这是因为切换输入法导致的,如果中文和英文都在同一个输入法下,那么切换就会变的异常流畅。

鼠须管输入法是自带英文输入的,但是中英文切换需要用“shift”键实现,但mac用久了都是习惯用”caps lock”键来切换中英文,所以我们这部需要调整一下

首先去系统设置里把这个“钩”取消掉

这样我们按”caps lock”就不会切换到系统自带的英文输入法了

然后打开default.yaml配置文件

如图修改成右边的样子(记得点击”重新部署”才能生效)

这个Caps_Lock从clear修改成commit_code的目的是有时候我们已经不小心在中文模式下输入了一段英文,我们不想切换到英文模式下重新输入,所以直接按”caps lock”就可以把已经打在输入法的英文直接打出来,不需要重新打了。

现在你只要按下”caps lock”键之后,就会有一个小的提示符出现在旁边,如下图

你也可以更改这个提示符

在rime_ice.schema.yaml配置文件里面改

我这里把英文输入从默认的”A”改成了”英”

3)修改皮肤

自带的皮肤不好看,雾凇拼音的皮肤其实也一般,关键我比较在意的是候选词默认是竖排排列的,看着很别扭,主要看横排习惯了

目前我用的是自己修改的皮肤,非常精简,和系统自带的输入法很类似,还把它的蓝色选中框改成了黑灰色,更加低调

如果喜欢我的皮肤,可以用我下面的配置文件,如果不喜欢可以自己去找别的或者自己设计

修改皮肤在squirrel.yaml文件里

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
onctf:
name: '精简风'
author: '骁隆'
back_color: 0xFFFFFF
border_height: 0
border_width: 8
candidate_format: '%c %@ '
comment_text_color: 0x999999
corner_radius: 5
hilited_corner_radius: 5
font_face: "PingFangSC"
font_point: 16
hilited_candidate_back_color: 0x444444
hilited_candidate_text_color: 0xFFFFFF
horizontal: true
inline_preedit: true
label_font_point: 12
text_color: 0x424242

然后需要在上面设置使用这个皮肤主题

因为我在macos下不用深色模式,所以没有重新定制一套暗色的皮肤,如果你们有需要就自己定制

记得点击”重新部署”就生效了

这里还有一个需要调整的就是候选词个数,默认是5个,我调整为6个,你们可以按需调整

在default.yaml文件中

4)新增自己的词库

雾凇拼音的文档里有详细的方法,可以参考https://dvel.me/posts/rime-ice/#%e6%8c%82%e8%bd%bd%e8%87%aa%e5%b7%b1%e7%9a%84%e8%af%8d%e5%ba%93

它给了两种方案,我这里选择的是挂载的方案

在rime_ice.dict.yaml里

我已经做了修改,我把雾凇拼音挂载的腾讯词库还有一个ext的词库都删掉了,因为这两个词库太大了,然后增加了mybaidudict这个我从手机百度输入法里导出的词库

上面这个配置文件这样增加一个,然后cn_dicts文件夹里增加一个文件,即可生效,注意文件名的对应

这里要介绍的是配置这份词库遇到的坑

首先是从手机百度输入法里导出词库,导出的目录在手机根目录的Android/data/com.baidu.input…/files里面的ch3.txt,不同人的百度输入法版本不同,可能导出的位置有点差异,仅用参考

因为百度输入法的词库有它自己的格式,和鼠须管输入法的词库是不一样的,所以需要用词库转换工具做一个转换。

https://github.com/studyzy/imewlconverter

用这个深蓝词库转换,参考我下图的配置,然后就会生成一个新的txt文件

我们先创建一个yaml文件,把ymal的格式弄好,再把txt文件里面的字库复制进来即可

由于编码等问题,这里推荐把cn_dicts文件夹里面的其他yaml拷贝一份再进行修改,而不是重新创建一份yaml文件

格式的关键就是图上方框中的内容,确认好后,就把刚刚转换出来的词库里面的内容复制到下面。

我试了mac下的sublime text还有vscode,从txt复制到yaml里面后,格式都出现了问题,因为这个词库是有严格的格式要求的

注意看,中文和拼音之间,还有拼音和数字之间的空格是制表符tab而不是普通的空格,所以显示出的符号是横杠,只有拼音之间的空格是普通的空格,所以符号是点。

我最终的解决方案是在windows虚拟机里用notepad++这个工具进行复制,注意notepad++的设置要和如下这样,不能勾选“替换为空格”

把刚刚自己做的yaml文件和深蓝词库转换出来的txt词库都用notepad++打开,然后复制到yaml里面

可以让notepad++显示一下空格与制表符确认一下格式是否正确,可以看一下我这份

这样就没问题了

如果制表符是普通的空格的话,重新部署是会报错不生效的。

因为弄词库很可能会遇到各种报错,所以这里也讲一下报错日志怎么查看

在命令行输入

1
cat $TMPDIR/rime.squirrel.INFO

并不能直接查看,但是给出了绝对路径,我们把这个路径复制到访达里,前往文件夹即可

1
/var/folders/m_/cqtddvq93dx84d23pmsrblrh0000gn/T

你会看到类似这样一个文件,用文本编辑器打开,就能看到报错信息了

就像我这里之前出现的报错信息

1
2
E20240125 19:46:34.978801 1789612 dict_settings.cc:34] incomplete dict header.
E20240125 19:46:34.978977 1789612 entry_collector.cc:63] missing dict settings.

这个就是因为制表符和空格没有区分开来导致的。

5)其他配置

其他配置由你们自己去探索

5、鼠须管输入法性能分析

本人使用的是一台macbookpro2019 16寸

在活动监视器查看鼠须管输入法的cpu占用情况

不打字的时候输入法cpu占用为0.2%左右,打字时占用也在2%以内,远比搜狗或者百度输入法的占用低,实测甚至比系统自带的”简体中文输入法“还要低,性能非常好

查看内存占用情况

目前占用34M,这个是随着使用时间会缓慢增加的,刚用的时候只有20多MB,我这是已经开启使用了一天多

这个内存占用绝对比搜狗或百度输入法低很多了,你们也可以自己对比一下,我的仅供参考。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!