希望双拼音节映射独立于码表

28 views
Skip to first unread message

Wenbo YANG

unread,
May 14, 2009, 4:36:43 AM5/14/09
to vimim
Hi all,

从本 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

vimim

unread,
May 14, 2009, 10:06:54 PM5/14/09
to vimim
Hi,

没怎么看懂。读了一篇 "智能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.

谢谢!

vimim

unread,
May 14, 2009, 10:24:24 PM5/14/09
to vimim

【附】 如果你选择【静态模式】,可考虑用

【最新试用版本】
http://maxiangjiang.googlepages.com/vimim.vim

【最新试用版本】对【静态模式】的支持过硬一点。

Wenbo Yang

unread,
May 14, 2009, 10:30:17 PM5/14/09
to vi...@googlegroups.com
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 <maxian...@gmail.com>:

--

vimim

unread,
May 14, 2009, 11:49:28 PM5/14/09
to vimim

感觉可以做。
能不能提供一个基本的码表和智能 ABC 的双拼规则?
基本的码表总是需要的吧,我想。

谢谢!


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

vimim

unread,
May 15, 2009, 12:14:31 AM5/15/09
to vimim
发现一个 "智能abc双拼的声母韵母表"。请看对不对?
感觉双拼的基本码表就是全拚?

如果 "智能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

unread,
May 15, 2009, 2:09:36 AM5/15/09
to vimim
研究了一把,终于对双拼似懂非懂了。
也发现真的有不少人喜欢双拼。估计都是些汉语拼音高手。

码表暂时就用 vimim.pinyin.txt 将就好了。
双拼规则我可以找到。

请多多提供一些用户体验,例如:

(1) 双键上字? 四键上字? 六键上字?
(2) 是不是都是 "空格键上汉字,回车键上英文"? (VimIM【静态模式】)
(3) 如果六键上字或八键上字,组合是不是吓人?

Wenbo Yang

unread,
May 15, 2009, 3:35:00 AM5/15/09
to vi...@googlegroups.com
事实上来说,双拼输入法一般不比全拼快多少。主要原因是它们都是拼音输入法,最主要的速度瓶颈在选字上而不是击键上,这一点要逊于五笔很多。不过双拼起码能减少一点儿输入次数,何乐而不为呢
:)

所以目前一个好的拼音输入法关键在于智能词库和词频调整上,就比如用搜狗或 Google 拼音输入法时一般比用智能或者微软输入法快。这一点我想
Vimim 应该很难媲美。不过 Vimim 现在的功能已经让我很惊喜了,谢谢您的工作。

文博
2009/5/15 vimim <maxian...@gmail.com>:

--

vimim

unread,
May 16, 2009, 5:12:06 AM5/16/09
to vimim
文博:

双拼好歹可以用了。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简单明快。

双拼你是高手,我是外行。欢迎多多提意见。

谢谢!

vimim

unread,
May 16, 2009, 4:45:25 PM5/16/09
to vimim

Add one more for completeness:

* 【自然码双拼】
*   开启: :let g:vimim_enable_double_pinyin_nature=1

Message has been deleted

vimim

unread,
May 17, 2009, 12:16:50 AM5/17/09
to vimim

>> 其实双拼规则只是按键的映射,所以,我觉得 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

vimim

unread,
May 17, 2009, 8:50:57 PM5/17/09
to vimim
I found the only thing in common are:

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.

Reply all
Reply to author
Forward
0 new messages