现在 ibus 切换到半角后,是所有字符都变成半角,
而我想要 fcitx 那种 / - + = 是半角,
同时 ,。?" " 、 这些中文标点是全角
谢谢
主要是因为写中文的时候,
/-+= 多需要的都是半角符号,
而 ,。?《》 这些需要的是全角符号。
所以觉得 fcitx 默认在全角时例外 /-+= 的做法比较方便。
我自己 ibus-pinyin 用这个脏的修改
diff --git a/engine/pinyin.py b/engine/pinyin.py
index 3e7e203..2ccdd72 100644
--- a/engine/pinyin.py
+++ b/engine/pinyin.py
@@ -558,6 +558,9 @@ class PinYinEngine(ibus.EngineBase):
if not self.__is_input_english():
return u"\u300b"
+ elif c in u"/-+=":
+ return c
+
return ibus.unichar_half_to_full(c)
def __english_mode_process_key_event(self, key):
On 9/14/08, Huang Peng <shawn....@gmail.com> wrote:
>
> 半角自然符号都是半角,你所说的情况比较特殊,如果实现可能会引起混乱。
>
主要是因为写中文的时候,
/-+= 多需要的都是半角符号,
而 ,。?《》 这些需要的是全角符号。
所以觉得 fcitx 默认在全角时例外 /-+= 的做法比较方便。
我自己 ibus-pinyin 用这个脏的修改
diff --git a/engine/pinyin.py b/engine/pinyin.py
index 3e7e203..2ccdd72 100644
--- a/engine/pinyin.py
+++ b/engine/pinyin.py
@@ -558,6 +558,9 @@ class PinYinEngine(ibus.EngineBase):
if not self.__is_input_english():
return u"\u300b"
+ elif c in u"/-+=":
+ return c
+
赏月回来,交 patch ~
谢谢
跑题下,
有些奇怪我这儿 setup/setup.glade 的 diff 会那么长那么诡异,
是 glade-3 版本差异的原因,
还是说 Huang Peng 手工编辑的 .glade 呀?
diff --git a/engine/pinyin.py b/engine/pinyin.py
index e05d06a..813eaeb 100644
--- a/engine/pinyin.py
+++ b/engine/pinyin.py
@@ -1099,9 +1099,9 @@ class PinYinEngine(ibus.EngineBase):
elif key == "/engine/PinYin/AutoCommit":
PinYinEngine.__auto_commit = \
bus.config_get_value("/engine/PinYin/AutoCommit",
PinYinEngine.__auto_commit)
- elif key == "/engine/PinYin/HalfPnctuations":
+ elif key == "/engine/PinYin/HalfPunctuations":
PinYinEngine.__half_puncts = \
-
bus.config_get_value("/engine/PinYin/HalfPnctuations",
PinYinEngine.__half_puncts)
+
bus.config_get_value("/engine/PinYin/HalfPunctuations",
PinYinEngine.__half_puncts)
else:
print "Unknow key(%s)" % key
我也遇到了这个问题, 很诡异, 给scim-python做的patch也是变了那么多, 似乎是glade版本的问题.
--
I'm the one, powered by nEO
-----------------------------------------
http://loveumyriad.72pines.com
恩,我昨晚敲错了 HalfPunctuations 和 HalfPnctuations
在 CONFIG_VALUE_CHANGED()里是
"/engine/PinYin/HalfPnctuations"
而 CONFIG_RELOADED() 里是
"/engine/PinYin/HalfPunctuations"
两个不一致