搜狗输入法for Mac输入中文标点(及自定义短语)- 命令行

问题

搜狗输入法for Mac输入中文标点(及自定义短语)》详细讲解了配置的过程。

但是搜狗输入法只要一更新,我就要重新手动编辑该 phrases.ini。我试着将这个过程用 shell 实现。

y,2=「
y,3=」

想着用 echo 将上面的字符附加到 phrases.ini 文件末尾就可以了,结果发现出现乱码。因为phrases.ini是二进制文件,查看:

$ enca -L zh_CN phrases.ini
Universal character set 2 bytes; UCS-2; BMP
CRLF line terminators
Byte order reversed in pairs (1,2 -> 2,1)

解决过程

接着考虑用十六进制的格式修改。

改之前,phrases.ini 的结尾:

334 00014d0: 2300 9c51 8653 2400 6c00 7500 6e00 6100  #..Q.S$.l.u.n.a.
335 00014e0: 7200 6400 6100 7400 6500 0d00 0a00 6200  r.d.a.t.e.....b.
336 00014f0: 6100 6e00 6200 6500 6e00 2c00 3200 3d00  a.n.b.e.n.,.2.=.
337 0001500: 2300 2400 5600 4500 5200 5300 4900 4f00  #.$.V.E.R.S.I.O.
338 0001510: 4e00 0d00 0a00                           N.....

手动添加上我自定义的字符,结尾成了:

335 00014e0: 7200 6400 6100 7400 6500 0d00 0a00 6200  r.d.a.t.e.....b.
336 00014f0: 6100 6e00 6200 6500 6e00 2c00 3200 3d00  a.n.b.e.n.,.2.=.
337 0001500: 2300 2400 5600 4500 5200 5300 4900 4f00  #.$.V.E.R.S.I.O.
338 0001510: 4e00 0d00 0a00 7900 2c00 3200 3d00 0c30  N.....y.,.2.=..0
339 0001520: 0d00 0a00 7900 2c00 3300 3d00 0d30 0d00  ....y.,.3.=..0..
340 0001530: 0a00                                     ..

最后,shell 脚本就成了:

#!/bin/bash
echo -e "\x79\x00\x2c\x00\x32\x00\x3d\x00\x0c\x30\x0d\x00\x0a\x00\x79\x00\x2c\x00\x33\x00\x3d\x00\x0d\x30\x0d\x00\x0a\x00" >> "/Library/Input Methods/SogouInput.app/Contents/Resources/phrases.ini"
pkill Sogou
pkill Sogou

遗留问题

我在运行之前是有备份的(phrases.ini_bak),当上面脚本运行成功之后,再运行

enca -L zh_CN phrases.ini

就显示不出来信息了,但不影响输入法使用,暂且这样吧。

转载于:https://my.oschina.net/viviworld/blog/545935

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值