• 社区首页
  • 版块
deepin20beta自带的sunpinyin词库安装与性能优化
应用专区566个浏览 ·2个评论
电梯直达到第
安洛
deepin^5
发表于2020-07-05 14:57
楼主
本帖最后由 chenxiex 于 2020-8-29 10:24 编辑

前段时间因为讯飞输入法莫名不能用了,就用回了自带的sunpinyin。但是sunpinyin默认配置下无法满足我的要求,所以做了一些优化。
一、安装词库(该步骤务必配合步骤二使用,否则卡死!)
在这里:
精简版词库
完整版词库
以上两个链接需魔法上网。
百度网盘(仅完整版):链接: https://pan.baidu.com/s/1zXDxmDwloTtFM8SBQThpcA 提取码: 9h2p
先备份~/.sunpinyin/userdict文件,然后将下载的文件解压后用userdict文件替换~/.sunpinyin/userdict文件即可。
建议使用精简版词库。完整版词库在经过性能优化后仍会出现卡顿。


二、性能优化
sunpinyin的词库查询非常慢,如果使用大词库将很容易卡死。因此在安装词库之后,我们需要先进行词库的性能优化。这个优化的原理是将词库缓存进内存里面。
参考https://blog.csdn.net/nick_wong/article/details/7689590

但是这个博客里面的脚本有格式问题,无法正常运行。我对其做了一些修改,修改后的脚本如下:
  1. #!/bin/bash
  2. #sunpinyin_speed_up.sh
  3. # Sunpinyin Speed Up Script for Ubuntu (by memory caching, and no data loss)
  4. # You can run this script in background on GNOME logging in.
  5. # Originally written Hubert Star, modified by Bob Robot (http://robotshell.org/).

  6. # Capture the exit signal, make sure it is the FIRST uncommented line.
  7. trap "do_exit" SIGHUP SIGINT SIGQUIT SIGTERM

  8. SUN_DIR="${HOME}/.sunpinyin"
  9. SHM_USERDICT="/dev/shm/sunpinyin_userdict.sh0"

  10. # Backup the userdict and restore all changes made by this script on exit.
  11. do_exit() {
  12.   cp -f "${SHM_USERDICT}" "${SUN_DIR}/userdict.real"
  13.   rm -f "${SHM_USERDICT}"
  14.   mv -f "${SUN_DIR}/userdict.real" "${SUN_DIR}/userdict"
  15.   exit 0
  16. }

  17. # Work around for abnormal quit.
  18. if [ -e "${SUN_DIR}/userdict.real" ]
  19. then
  20.   rm -f "${SHM_USERDICT}"
  21.   mv -f "${SUN_DIR}/userdict.real" "${SUN_DIR}/userdict"
  22. fi

  23. # Rename the real userdict, copy it to RAM and make a symblic link back.
  24. # From now on the modification and query on userdict takes place in RAM.
  25. mv -f "${SUN_DIR}/userdict" "${SUN_DIR}/userdict.real"
  26. cp -f "${SUN_DIR}/userdict.real" "${SHM_USERDICT}"
  27. ln -sf "${SHM_USERDICT}" "${SUN_DIR}/userdict"

  28. # Automatically backup the userdict, make sure not losing the modification.
  29. p_count=0
  30. while [ true ]
  31. do
  32.   p_count=$(($p_count+1))
  33.   sleep 1800

  34.   if [ $p_count ==4]
  35.   then
  36.      p_count=0
  37.      cp -f "${SHM_USERDICT}" "${SUN_DIR}/userdict.real"
  38.   fi

  39.   p_size_shm=$(ls-l"${SHM_USERDICT}"|awk '{print $5}')
  40.   p_size_real_t=$(ls-l"${SUN_DIR}/userdict.real"|awk '{print $5}')
  41.   p_size_real=$(($p_size_real_t+512))

  42.   if [ $p_size_shm-ge$p_size_real ]
  43.   then
  44.      cp -f "${SHM_USERDICT}" "${SUN_DIR}/userdict.real"
  45.   fi
  46. done
Copy the Code
在任意位置新建文本文档,复制粘贴以上代码,重命名为:“sunpinyin_speed_up.sh”。(该脚本请勿随意删除或移动。如果想要卸载,请参考注意2)
然后在~/.config/autostart/下新建文本文档,写进以下内容:
  1. [Desktop Entry]
  2. Name=ssu
  3. Type=Application
  4. Exec=sunpinyin_speed_up.sh文件路径(如/home/username/sunpinyin_speed_up.sh)
Copy the Code
重启电脑。现在sunpinyin应该已经读取的是内存里面的词库了。该脚本不会影响自造词等功能的使用。但是启动时会占用约等于userdict文件大小的内存空间。

三、添加云词库
本地词库终究难以跟上时代的步伐。这时就要云词库来帮忙了。sunpinyin要使用云词库功能需要安装fcitx-module-cloudpinyin这个包。但是源里面的这个包有点问题,不能正确调用百度源。这里需要到debian sid源下载最新的包:http://ftp.cn.debian.org/debian/pool/main/f/fcitx-cloudpinyin/fcitx-module-cloudpinyin_0.3.7-1_amd64.deb
下载后双击安装即可。然后到任务栏托盘右键拼音图标,点击配置,附加组件,然后找到云拼音,双击打开设置,选择百度源即可。


优化完成。enjoy!
注意:
  • 如果使用效果不满意,删除~/.config/autostart/下的desktop文件,重启电脑,将之前备份好的userdict替换~/.sunpinyin/userdict文件,然后删除sunpinyin_speed_up.sh脚本即可。如果忘记备份,也可直接删除~/.sunpinyin/userdict,sunpinyin会自动重建词库。


回复收藏只看作者
所有回复
angelfind
deepin^4
发表于2020-10-23 18:48
沙发
mark一下,以防下次重装系统忘了怎么配置的。又找不到这个帖子就麻烦了。
1)我只使用了第三个步骤安装deb;
2)然后删除除了键盘,sunpingyin 以外的所有输入法;
3)全局配置-》切换激活/非激活输入法(添加了一个Lshift)快捷键;
有点遗憾的是sunpinyin输入法状态下不能直接输入英文标点。或有没有人知道怎么能实现这个?感觉要在中文拼音输入法状态下全部都是用英文标点的都是同类人有没有。
angelfind
deepin^4
发表于2020-10-23 18:56
板凳
https://bbs.deepin.org/post/196762
mark一下,以防下次重装系统忘了怎么配置的。又找不到这个帖子就麻烦了。
1)我只使用了第三个步骤安装deb; ...

已找到中文状态下输入半角标点方法, ctrl+. 就是不知道重启电脑会不会失效.
发布帖子

光荣榜

  • 周榜
  • 月榜
  • 总榜