搜狗輸入法for Mac輸入中文標點(及自定義短語)- 命令行

問題

搜狗輸入法for Mac輸入中文標點(及自定義短語)》詳細講解了配置的過程。html

可是搜狗輸入法只要一更新,我就要從新手動編輯該 phrases.ini。我試着將這個過程用 shell 實現。
shell

y,2=「
y,3=」

想着用 echo 將上面的字符附加到 phrases.ini 文件末尾就能夠了,結果發現出現亂碼。由於phrases.ini是二進制文件,查看:bash

$ 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)

解決過程

接着考慮用十六進制的格式修改。app

改以前,phrases.ini 的結尾:spa

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.....

手動添加上我自定義的字符,結尾成了:3d

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 腳本就成了:code

#!/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),當上面腳本運行成功以後,再運行htm

enca -L zh_CN phrases.ini

就顯示不出來信息了,但不影響輸入法使用,暫且這樣吧。get

相關文章
相關標籤/搜索