分享本身動手弄的基於Rime的新世紀五筆輸入法碼錶

實驗室新搞了一臺iMac,沒有支持新世紀的碼錶的中文輸入法啊。搜索半天你們推薦用Rime(鼠須管來掛接新世紀碼錶。不知道還有沒有其它支持外掛碼錶的Mac版輸入法,暫時只有搞這個了。看了一下別人已經作出來的新世紀碼錶,怕跟本身經常使用的不習慣,因此準備在他們的配置文件基礎上,用本身的碼錶文件代替。能夠極點、小小等用的碼錶是先碼後字的方式,即:
a 工 戈
aa 工 式
aaa 工
aaaa 工 恭恭敬敬
aaad 工期

而Rime用的是先字後碼的方式:
工    a
戈    a
工    aa
式    aa
工    aaa
工    aaaa

因此只能本身轉一下了,大體說一下過程:
1.將你如今用的碼錶打開,隨便用支持大文件的文件編輯器就好,我用的Emeditor,而後複製[DATA]如下的實際編碼到excel粘貼。
2.在excel裏粘貼後一行是一個單元格,用「分列」功能,以空格把原一列的數據分紅多列,第1列爲編碼,後面的可能有多列的漢字。
3.新建一個sheet,默認名字是sheet2,前面粘貼的通常爲sheet1,若是你的excel默認啓動就是3個sheet的話,就不用了。
4.在excel裏按alt+f11,打開vba編輯器,粘貼以下代碼:git

 1 Sub GetRimeDict()
 2     Dim i As Long, j As Long, n As Long
 3     Dim sht As Worksheet
 4     Set sht = Sheets("sheet1")
 5     Dim sht1 As Worksheet
 6     Set sht1 = Sheets("sheet2")
 7     With sht
 8         i = 1
 9         n = 1
10         Do While Len(.Cells(i, 1).Value) > 0
11             j = 2
12             Do While Len(.Cells(i, j).Value) > 0
13                 sht1.Cells(n, 1) = .Cells(i, j)
14                 sht1.Cells(n, 2) = .Cells(i, 1)
15                 j = j + 1
16                 n = n + 1
17             Loop
18             i = i + 1
19         Loop
20       
21     End With
22 
23 End Sub
24 
25 Sub GenTxt()
26     Dim i As Long
27         Dim sht1 As Worksheet
28     Set sht1 = Sheets("sheet2")
29     Dim sql As String
30     sql = ""
31     i = 1
32     Do While Len(sht1.Cells(i, 1).Value) > 0
33         sql = sql & sht1.Cells(i, 1) & Chr(9) & sht1.Cells(i, 2) & Chr(10)
34         i = i + 1
35     Loop
36    
37     SaveFile sql, "c:\xsj_rime.txt"
38 End Sub
39 
40 Sub SaveFile(sql As String, fileName As String)
41 '--------------------------------------------------------------
42 '功    能:保存語句,若已存在文件則直接追加,若文件不存在在先新建.
43 '做    者:erqie
44 '製做日期:2009-08-24
45 '修訂日期:
46 'ForReading 1 以只讀方式打開文件。 不能寫這個文件。
47 'ForWriting 2 以寫方式打開文件
48 'ForAppending 8 打開文件並從文件末尾開始寫。
49 '--------------------------------------------------------------
50     Dim fso, MyFile
51     Set fso = CreateObject("Scripting.FileSystemObject")
52     If (fso.fileExists(fileName)) Then
53         '參數8表示在文件末尾追加寫入
54         Set MyFile = fso.OpenTextFile(fileName, 8)
55         'fso.Delete (fileName)
56        
57     Else
58         'ture表示覆蓋建立
59         Set MyFile = fso.CreateTextFile(fileName, ture)
60     End If
61     MyFile.writeline (sql)
62     MyFile.Close
63     Set fso = Nothing
64     Set MyFile = Nothing
65 End Sub

而後把光標定位在GetRimeDict函數裏,按f5運行後,在sheet2裏生成新的碼錶。
而後把光標定位在GenTxt函數裏運行,後會在C盤下生成轉換後的碼錶。此後就能夠複製到Rime的碼錶文件裏替換原來的漢字編碼了。github

下載碼錶及配置
sql

相關文章
相關標籤/搜索