从本 group 的历史讨论来看,主页上的双拼实现是基于码表的,就是将全拼码表转换为双拼码表。但是双拼有很多规则,比如 scim 里就包含了:
微软双拼,紫光双拼,智能ABC双拼,中文之星双拼,刘氏双拼。如果基于码表来实现这些双拼规则的话,就需要不同的码表,这将是一个管理上的负担。就比
如以后如果推出一些偏好码表词库的话,就需要很多版本。
其实双拼规则只是按键的映射,所以,我觉得 vimim 插件应该把双拼规则集成到插件代码里,提供一个开关给用户选择不同的拼写规则,而码表统一使用
拼音码表。
文博
--
Wenbo YANG
The State Key Laboratory Of Information Security
Graduate University of Chinese Academy of Sciences
19A Yuquan Road, Beijing, China --- Homepage: http://solrex.cn
没怎么看懂。读了一篇 "智能ABC输入法窍门大全":
http://www.23you.com/xitongzhishi/09426482.html
如果我没有找错文章,那么这是一个简单的问题。
让我们来点实在的,先把 "智能ABC 双拼" 弄好:
第一步: 做一个 "智能ABC双拼" 的码表
VimIM 码表格式是我看到的输入法中最简单的。
If you don't want to play, send me a "智能ABC双拼"词库,
and I can get it done in few minutes.
第二步: 命名你的码表为: vimim.pinyin.txt
第三步: 把 vimim.vim 和您的码表扔到 Vim 的 plugin 目录下
第四步: (Optional) 开启【静态模式】
感觉"智能ABC" 类似VimIM 的【静态模式】
+ ㈠【静态模式】【默认关闭】
- 【经典】空格键上汉字,回车键上英文。
- 【擅长】"中文/英文/数字"混合输入
- 【卖点】中文输入和英文输入和谐共处,互不干涉
- 开启::let g:vimim_enable_static_menu=1
至于是不是,只有玩家自己明白。
please tell me all problems you can find, and I am sure I can make
it work for you.
谢谢!
我想可能是我没有解释清楚。这个其实和智能 ABC 的功能没关系,您大概对“双拼”这个输入法了解不多。
所谓双拼,就是用一个键代表声母,一个键代表韵母,这样两键就可以打出来一个音节。就拿“双拼”两个字来说,原始音节是
shuangpin,需要击键 9 次,用智能 ABC 的双拼规则,就是 vtpc,击键 4 次。其中 v 映射到 sh,t 映射到
uang,p 映射到 p,c 映射到 in。每个字都是由声母和韵母组成的,所以第一个键往往使用声母映射,第二个键往往使用韵母映射。因此 t
作为第奇数次输入(声母)时代表 t,t 作为第偶数次输入(韵母)时代表 uang。
那么汉语中还有“哦”这样只有韵母的字呢,它可能会干扰每个字两个键的假设,所以这时候需要一个类似于转义符的键,在智能 ABC 双拼规则中是
o,在微软双拼规则中我记得好像是 '。当只有韵母时,需要用 o 作为伪声母,比如“哦”的智能 ABC 击键顺序是 oo。
因此双拼输入法的关键在于双拼规则,也就是键的映射。比如在智能 ABC 双拼规则中 v 作为声母映射到 sh,在微软双拼规则中 v
作为声母映射到 zh。可以看到,为了匹配不同的双拼输入法,您只需要修改双拼规则,而不是提供整个码表。
文博
2009/5/15 vimim <maxian...@gmail.com>:
--
谢谢!
On May 14, 7:30 pm, Wenbo Yang <sol...@gmail.com> wrote:
> Hi Vimim,
>
> 我想可能是我没有解释清楚。这个其实和智能 ABC 的功能没关系,您大概对"双拼"这个输入法了解不多。
>
> 所谓双拼,就是用一个键代表声母,一个键代表韵母,这样两键就可以打出来一个音节。就拿"双拼"两个字来说,原始音节是
> shuangpin,需要击键 9 次,用智能 ABC 的双拼规则,就是 vtpc,击键 4 次。其中 v 映射到 sh,t 映射到
> uang,p 映射到 p,c 映射到 in。每个字都是由声母和韵母组成的,所以第一个键往往使用声母映射,第二个键往往使用韵母映射。因此 t
> 作为第奇数次输入(声母)时代表 t,t 作为第偶数次输入(韵母)时代表 uang。
>
> 那么汉语中还有"哦"这样只有韵母的字呢,它可能会干扰每个字两个键的假设,所以这时候需要一个类似于转义符的键,在智能 ABC 双拼规则中是
> o,在微软双拼规则中我记得好像是 '。当只有韵母时,需要用 o 作为伪声母,比如"哦"的智能 ABC 击键顺序是 oo。
>
> 因此双拼输入法的关键在于双拼规则,也就是键的映射。比如在智能 ABC 双拼规则中 v 作为声母映射到 sh,在微软双拼规则中 v
> 作为声母映射到 zh。可以看到,为了匹配不同的双拼输入法,您只需要修改双拼规则,而不是提供整个码表。
>
> 文博
> 2009/5/15 vimim <maxiangji...@gmail.com>:
如果 "智能abc双拼的声母韵母表" 没有错,那么:
vtpc => shiangpuai
vtpc => shiangpin
vtpc => shuangpuai
vtpc => shuangpin
我们的基本任务是在四个组合中找一个匹配的?
另外的任务是使"一个类似于转义符的键"正常工作?
还有一个任务是计算"奇数次输入(声母)" 和 "偶数次输入(韵母)"?
有什么漏掉的?
A-zh
B-ou
C-in-uai
D-ua-ia
E-ch
F-en
G-eng
H-ang
I-i
J-an
K-ao
L-ai
M-ue-ui
N-un
O-uo
P-uan-uan
Q-ei
R-iu-er
S-ong
T-uang-iang
U-u
V-sh
W-ian
X-ie
Y-ing
Z-iao
码表暂时就用 vimim.pinyin.txt 将就好了。
双拼规则我可以找到。
请多多提供一些用户体验,例如:
(1) 双键上字? 四键上字? 六键上字?
(2) 是不是都是 "空格键上汉字,回车键上英文"? (VimIM【静态模式】)
(3) 如果六键上字或八键上字,组合是不是吓人?
所以目前一个好的拼音输入法关键在于智能词库和词频调整上,就比如用搜狗或 Google 拼音输入法时一般比用智能或者微软输入法快。这一点我想
Vimim 应该很难媲美。不过 Vimim 现在的功能已经让我很惊喜了,谢谢您的工作。
文博
2009/5/15 vimim <maxian...@gmail.com>:
--
双拼好歹可以用了。vtpc 测试成功,用的是我的OneKey。
【最新试用版本】http://maxiangjiang.googlepages.com/vimim.vim
【最新说明】http://maxiangjiang.googlepages.com/vimim.html
双拼
* 微软双拼规则
* 开启: :let g:vimim_enable_double_pinyin_microsoft=1
* 智能ABC双拼规则
* 开启: :let g:vimim_enable_double_pinyin_abc=1
用户体验还是需要的!!!
(1) 双键上字? 四键上字? 六键上字?
(2) 是不是都是 "空格键上汉字,回车键上英文"? (VimIM【静态模式】)
The maximum is 八键。也可以多设,多设好像没有什么含义?
主要 codes 在这几个 functions, 欢迎改进。
function! s:VimIM_double_pinyin(shengmu, yunmu, keyboard)
function! s:VimIM_double_pinyin_abc(keyboard)
function! s:VimIM_double_pinyin_microsoft(keyboard)
原本以为可以复制粘贴人家的,但发现人家的啰嗦,不如我们的Vim简单明快。
双拼你是高手,我是外行。欢迎多多提意见。
谢谢!
* 【自然码双拼】
* 开启: :let g:vimim_enable_double_pinyin_nature=1
>> 其实双拼规则只是按键的映射,所以,我觉得 vimim 插件应该把双拼规则集
>> 成到插件代码里,提供一个开关给用户选择不同的拼写规则,而码表统一使用
>> 拼音码表
一口气全部加上,与你的期望保持一致。
双拼 (征求意见稿)【即将上市】
* 【微软双拼】
* 开启: :let g:vimim_enable_double_pinyin_microsoft=1
* 【智能ABC双拼】
* 开启: :let g:vimim_enable_double_pinyin_abc=1
* 【自然码双拼】
* 开启: :let g:vimim_enable_double_pinyin_nature=1
* 【紫光双拼】
* 开启: :let g:vimim_enable_double_pinyin_purple=1
* 【拼音加加双拼】
* 开启: :let g:vimim_enable_double_pinyin_plusplus=1
let s:shengmu["o"] = "'"
let s:yunmu["o"] = ["uo", "o"]
for all these 双拼 rules
* 【微软双拼】
* 【智能ABC双拼】
* 【自然码双拼】
* 【紫光双拼】
* 【拼音加加双拼】
Therefore, I put them in one place, save 8 lines.