《搜狗輸入法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