|
发表于 2010-6-15 19:19:33
|
显示全部楼层
Post by monpython;1333591
缘起:
遐思:
假如在 SCIM 中,能够把中、英切换键改为 ESC ,在 vim 下也许就更方便了。
发个 Patch,实现你所说的这个功能,已经用了很久了。在碰到 ESC 键时,直接切换为英文状态,中英文之间的切换仍然使用 Shift。Vim, Emacs 的快捷键都支持,也可以加入你自己的快捷键。主要是 iminsert 这种方法一直没有实验成功,并且我主要使用 terminal 下的 vim,所以还只能从输入法这个层次入手。
- diff -urb ../scim-original/scim-pinyin-0.5.91/src/scim_pinyin_imengine.cpp ./src/scim_pinyin_imengine.cpp
- --- ../scim-original/scim-pinyin-0.5.91/src/scim_pinyin_imengine.cpp 2005-08-06 23:31:08.000000000 +0800
- +++ ./src/scim_pinyin_imengine.cpp 2010-05-17 18:40:03.332616498 +0800
- @@ -774,14 +774,15 @@
-
- if (!m_forward) {
- //reset key
- - if (key.code == SCIM_KEY_Escape && key.mask == 0) {
- - if (m_inputed_string.length () == 0 &&
- - m_converted_string.length () == 0 &&
- - m_preedit_string.length () == 0)
- - return false;
- -
- + if (key.code == SCIM_KEY_Escape && key.mask == 0
- + || (key.code == SCIM_KEY_bracketleft && key.mask == SCIM_KEY_ControlMask)
- + || (key.code == SCIM_KEY_x && key.mask == SCIM_KEY_ControlMask)
- + || (key.code == SCIM_KEY_c && key.mask == SCIM_KEY_ControlMask)) {
- + m_forward = 1;
- + refresh_all_properties ();
- reset ();
- - return true;
- + m_prev_key = key;
- + return false;
- }
-
- if (!m_factory->m_shuang_pin) {
复制代码
也可以看我的 blog:
http://hi.baidu.com/cs_peanuts/b ... 4f42c0d0c86a6f.html |
|