My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
Configuration  
Updated May 4, 2010 by arcpp.zju@gmail.com

用户配置文件

一般作为普通用户,没有权限修改全局配置文件,可以将配置文件放在用户目录,就可以编辑:

mkdir -p $XDG_CONFIG_HOME/ibus/sogoupycc
gvim $XDG_CONFIG_HOME/ibus/sogoupycc/config.lua

默认情况下,用户配置文件和全局配置文件同时生效。$XDG_CONFIG_HOME 一般为 $HOME/.config/

配置文件说明

语法说明

配置文件实际上是一个 lua 脚本,遵循 lua 语法。

如果你不熟悉 lua,修改配置文件没有生效,请先确认代码不是注释。lua 的注释规则是:

-- 以双减号开头,到行尾都是的是注释,所以这一行是注释
blabla -- 这里也是注释,但前面的 blabla 不是
-- 被 --[[ 和 --]] 括起来的部分都是注释
--[[ 这里就是注释
这一行也是注释
这里还是注释,但后面的 blabla 不是 --]] blabla

如果配置文件中有产生错误,从命令行运行输入法可以看到错在哪里。

注意 如果你熟悉 lua ,那么下面的内容将对你有帮助。如果你不熟悉,也可以直接修改配置,请参考配置样例

常量说明

名称 说明
ime.VERSION 版本字符串
ime.PKGDATADIR 软件包路径
比如 "/usr/share/ibus-sogoupycc"
ime.USERCONFIGDIR 用户配置路径
比如 "/home/user/.config/ibus/sogoupycc"
ime.USERCACHEDIR 用户缓存路径
比如 "/home/user/.cache/ibus/sogoupycc"
ime.USERDATADIR 用户数据路径
比如 "/home/quark/.local/share/ibus/sogoupycc"
ime.DIRSEPARATOR 目录分割符号
应该是 "/"
ime.INVALID_COLOR 无效的颜色,表示不修改该项颜色
key.None 不是任何一个键
key.Shift_L Left Shift
key.Shift_R Right Shift
key.Control_L Left Control
key.Control_R Right Control
key.Alt_L Left Alt
key.Alt_R Right Alt
key.Tab Tab
key.space Space
key.Return Enter
key.BackSpace Backspace
key.Escape Escape
key.Delete Delete
key.Page_Up Page Up
key.Page_Down Page Down
key.CONTROL_MASK Control (在 modifiers 中使用,下同)
key.SHIFT_MASK Shift
key.LOCK_MASK Caps Lock
key.MOD1_MASK 通常是 Alt_L, Alt_R, Meta_L
key.MOD4_MASK 通常是 Super_L, Hyper_L
key.SUPER_MASK Super (可能不能用)
key.META_MASK Meta

如果你想使用上表未列出的键,可以参考 ibuskeysyms.h

配置项说明

名称 说明 默认值 要求版本
最后改动版本
ime.db_result_limit 外部字词库结果限制
0 表示无限制
128,结果最多 128 个 0.2.0
ime.db_length_limit 外部词库查询时长度限制
应该在 1 到 15 之间
10,不查询超过 10 个汉字的词 0.2.0
ime.db_phrase_adjust 长词组位置调整
0 为没有调整,负数向后调整,正数向前调整
1.2,将长词组位置稍微提前 0.2.0
ime.db_completion_adjust 使用本地词库补全时,长词组位置调整
0 为没有调整,负数向后调整,正数向前调整
4,将长词组位置大幅度提前 0.2.1
ime.db_query_order 字词库查询顺序
"2" 为内部 gb2312 单字库 (将按音调列出)
"d" 为外部字词库 (ibus-pinyin 1.2.99 兼容)
"c" 为部分缓存结果
"w" 为云服务器提供的词语
'2d' 即为,先列出内部 gb2312 单字库,
紧跟着列出外部字词库 (如果有的话)。
'cwd2' 0.2.0
0.2.3
ime.fallback_use_db 如果请求有失败的情况,使用加载的第一个本地词库补全 true
如果没有加载词库,那么此选项无效
0.2.1
ime.fallback_pre_request 是否在预请求超时的时候,也使用本地词库补全
此项为 true 会重写 ime.cache_requests
true 0.2.1
ime.preedit_fore_color 正在编辑的拼音前景色 0x0050FF 0.2.0
ime.preedit_back_color 正在编辑的拼音背景色 ime.COLOR_NOCHANGE 0.2.0
ime.local_cache_fore_color 本地词库预请求结果前景色 0x8C8C8C 0.2.1
ime.local_cache_back_color 本地词库预请求结果背景色 ime.COLOR_NOCHANGE 0.2.1
ime.cloud_cache_fore_color 云预请求结果前景色 0x0050FF 0.2.1
ime.cloud_cache_back_color 云预请求结果前景色 ime.COLOR_NOCHANGE 0.2.1
ime.requesting_fore_color 请求中的拼音前景色 ime.COLOR_NOCHANGE 0.2.0
ime.requesting_back_color 请求中的拼音背景色 0xB8CFE5 0.2.0
ime.responsed_fore_color 请求完成的字串前景色 0x0024B2 0.2.0
ime.responsed_back_color 请求完成的字串背景色 ime.COLOR_NOCHANGE 0.2.0
ime.correcting_fore_color 纠正模式中文字前景色 ime.COLOR_NOCHANGE 0.2.0
ime.correcting_back_color 纠正模式中文字背景色 0xFFB442 0.2.0
ime.cloud_cache_candicate_color 选词时缓存词条的颜色 0x0050FF 0.2.3
ime.cloud_word_candicate_color 选词时云服务器给出词条的颜色 0x00A811 0.2.3
ime.database_candicate_color 选词时本地词库词条的颜色 ime.COLOR_NOCHANGE 0.2.3
ime.internal_candicate_color 选词时内置 gb2312 字库词条的颜色 0x8C8C8C 0.2.3
ime.multi_tone_limit 纠正模式允许匹配的多音字情况数
过大的值会使得纠正模式查词缓慢
4
允许有 4 种不同的读音出现
0.2.0
ime.sel_timeout 当选择一段新的文字之后,
如果超过这个时间,
则再按纠正热键也不会起作用
3.0
3 秒钟后超时
0.2.0
ime.show_cache_preedit 是否在正在编辑的拼音串中显示有缓存的结果 true 0.2.0
ime.pre_request 是否预先发送请求并缓存,如果为 true
ime.cache_requests = true
true 0.2.0
ime.pre_request_timeout 预请求超时 0.6,0.6 秒钟 0.2.0
0.2.5
ime.pre_request_retry 为相同的内容发送预请求最多多少次 4,4次 0.2.3
ime.preedit_reserved_pinyin 拼音编辑串中保留最右边多上个拼音 0 0.2.5
ime.request_timeout 普通请求的超时 12.0,12 秒钟 0.2.1
0.2.3
ime.strict_timeout 使用严格的超时控制,否则,使用粗略的超时控制
如果此选项造成输入法不稳定,请改成 false
true 0.2.3
ime.quick_response_key 非选词时,迅速让正在进行的所有请求超时,
完成未完成的请求,不管结果质量如何 (需要词库支持)
key.Alt_R 0.2.1
ime.eng_mode_key 中文模式切换到英文模式热键 key.Shift_L 0.2.0
ime.chs_mode_key 英文模式切换到中文模式热键 key.Shift_L 0.2.0
ime.correction_mode_key 纠正模式和自选词热键 key.Tab 0.2.0
ime.page_down_key 选词列表向下翻页热键 ('h'):byte() 0.2.0
ime.page_down_key 选词列表向上翻页热键 ('g'):byte() 0.2.0
ime.raw_preedit_key (中文状态下)直接提交输入英文内容热键 key.Shift_R 0.2.5
ime.show_notificaion 是否显示桌面提示 (via libnotify) true 0.2.0
ime.static_notification 桌面提示是否最多显示一个
(建议 notify-osd 用户开启此项)
false 0.2.0
ime.use_double_pinyin 是否使用双拼 false 0.2.0
ime.strict_double_pinyin 是否只接受严格的双拼输入
(双拼模式下)
false,不能解析的双拼字符串视为全拼
如果为 true,拒绝不合法的双拼输入
0.2.0
0.2.1
ime.auto_eng_tolerance 当连续多少个不完整的拼音,认为是实际不是拼音,自动切换到英文状态
如果是负数,则禁用自动切换到英文功能
5 0.2.1
0.2.5
ime.start_in_eng_mode 是否英文模式 false 0.2.0
ime.cache_requests 是否缓存请求和自选词的结果,
可能被 ime.pre_request 改写为 true
true 0.2.0
ime.label_keys 用于选词的按键
由于 ibus 限制,最多 16 个
可以是字符串或者按键数组
"jkl;uiopasdf" 0.2.0
ime.fetcher_path 云请求脚本路径
该脚本接受一个可能用空格做分割的拼音字符串为参数,
以及一个可选的浮点数作为超时时间 (第二个参数)
将请求结果写到标准输出,
该脚本需处理超时情况,
若出现错误,应该输出一空行
ime.PKGDATADIR .. "/fetcher" 0.2.0
ime.full_pinyin_adjustments 全拼分隔符修正表格 参见全局配置文件 0.2.5
ime.punc_after_chinese 出现在其中的英文标点,
只有在刚输入完汉字之后才使用对应的中文标点
".,:" 0.2.1
0.2.2
ime.punc_map 中英文标点符号转换表
对于多状态的标点,允许使用数组表示
默认为 nil,此时相当于下方代码 0.2.0

ime.punc_map = { ['.'] = '。', [','] = ',', ['^'] = '……', ['@'] = '·',
 ['!'] = '!', ['~'] = '~', ['?'] = '?',
 ['#'] = '#', ['$'] = '¥', ['&'] = '&',
 ['('] = ' (', [')'] = ')', ['{'] = '{',
 ['}'] = '}', ['['] = '[', [']'] = ']',
 [';'] = ';', [':'] = ':', ['<'] = '《',
 ['>'] = '》', ['\\'] = '、',
 ["'"] = { '‘', '’'}, ['"'] = { '“', '”'}
 }

缓存

_G.request_cache 是一个用于请求和自选词的结果的缓存,可以用来设置简单的用户词库,例如

request_cache['w'] = '我'
request_cache['zhen de ma'] = '真的吗?'

函数说明

通过函数设置的选项皆为立即生效

名称 说明 参数 返回值 要求版本
ime.set_debug_level(level) 设置调试信息输出级别 level
0 到 10 之间的整数
0 为不输出任何调试信息
0.2.0
ime.load_database
(filename, weight)
加载 ibus-pinyin 1.2 兼容词库 filename 字符串,文件名
weight 浮点数,权重系数
加载多个词库后,查询时将乘以各自的权重
第一次加载成功为 1
否则为 0
0.2.0
ime.chars_to_pinyin(chars) 将汉字转换回拼音 chars 字符串,一串汉字 用空格分隔的全拼字符串 0.2.0
ime.double_to_full_pinyin(double_pinyin) 将双拼字符串转换成全拼 double_pinyin 双拼字符串,比如 "womf" 用空格分隔的全拼字符串 0.2.0
ime.database_count() 查询已经加载的外部词库个数 一个整数,表示已经加载的词库数 0.2.0
ime.apply_settings() 立即应用设置
一般设置会在配置脚本执行完后读入
这个函数可以让输入法立即读入那些变量表示的设置
0.2.0
ime.set_double_pinyin_scheme
(scheme)
设置双拼方案
输入法没有内置默认双拼方案
使用双拼一定要先设置双拼方案
scheme 双拼方案,
在声母部分使用 "-" 表示禁用,零声母使用 "",
具体请参考默认配置文件,常见的双拼方案见本页后面
歧义数 (按两个键,可能有多种全拼解释为歧义)
正确的双拼布局歧义数应该是 0
0.2.0
ime.register_command
(key, modifiers, label, script)
注册一个扩展 key 按键 (只能是数字,即 key.xxx 形式或者 ('k'):byte() )
modifiers 组合键状态,只能是数字
label 字符串,名称
script 字符串,一段 lua 脚本
0.2.0
ime.bitand(a, b) 按位与 a, b 两个整数 按位与结果 0.2.0
ime.bitor(a, b) 按位或 a, b 两个整数 按位或结果 0.2.0
ime.get_selection() 获得当前选定内容 字符串,选定内容,可能是用户很久以前选定的内容 0.2.0
ime.commit(text) 向输入法提交文本 text 字符串,要提交的文本 0.2.0
ime.request(text, func) 向云服务器发送请求 text 字符串,要提交的文本
func 可选,字符串,函数名,该函数负责转换文本(可能阻塞)
该函数接受一个字符串,返回一个字符串
0.2.0
ime.execute(script) 执行脚本 script lua脚本 布尔值,如果没有错误则为 true 0.2.0
ime.notify
(summary, details, icon)
显示消息 summary 字符串,details 可选字符串
icon 可选字符串,图标文件路径
布尔值,如果成功, true 0.2.0

双拼方案

这里列出了一些常用的双拼方案

--[[
-- 微软拼音方案
	q = {"q", {"iu"}}, w = {"w", {"ia", "ua"}}, e = {"-", {"e"}}, r = {"r", {"uan", "er"}}, t = {"t", {"ue"}}, y = {"y", {"uai", "v"}}, u = {"sh", {"u"}}, i = {"ch", {"i"}}, o = {"", {"o", "uo"}}, p = {"p", {"un"}},
	a = {"-", {"a"}}, s = {"s", {"ong", "iong"}}, d = {"d", {"uang", "iang"}}, f = {"f", {"en"}}, g = {"g", {"eng"}}, h = {"h", {"ang"}}, j = {"j", {"an"}}, k = {"k", {"ao"}}, l = {"l", {"ai"}}, [';'] = {"-", {"ing"}},
	z = {"z", {"ei"}}, x = {"x", {"ie"}}, c = {"c", {"iao"}}, v = {"zh", {"ui", "ue", "ve"}}, b = {"b", {"ou"}}, n = {"n", {"in"}}, m = {"m", {"ian"}},
-- 搜狗拼音方案 (类似微软拼音方案,不同在于 've' 的位置,微软拼音方案在 V 键,搜狗拼音方案在 T 键。目前没有将 've' 列入合法拼音,全部使用 'ue' ,所以两方案实际相同)
	q = {"q", {"iu"}}, w = {"w", {"ia", "ua"}}, e = {"-", {"e"}}, r = {"r", {"uan", "er"}}, t = {"t", {"ue", "ve"}}, y = {"y", {"uai", "v"}}, u = {"sh", {"u"}}, i = {"ch", {"i"}}, o = {"", {"o", "uo"}}, p = {"p", {"un"}},
	a = {"-", {"a"}}, s = {"s", {"ong", "iong"}}, d = {"d", {"uang", "iang"}}, f = {"f", {"en"}}, g = {"g", {"eng"}}, h = {"h", {"ang"}}, j = {"j", {"an"}}, k = {"k", {"ao"}}, l = {"l", {"ai"}}, [';'] = {"-", {"ing"}},
	z = {"z", {"ei"}}, x = {"x", {"ie"}}, c = {"c", {"iao"}}, v = {"zh", {"ui"}}, b = {"b", {"ou"}}, n = {"n", {"in"}}, m = {"m", {"ian"}},
-- 自然码方案 (类似搜狗拼音和微软拼音方案,自然码方案中 'ing' 由 ; 移动到了 Y 键, 'v' 由 Y 移到了 V 键)
	q = {"q", {"iu"}}, w = {"w", {"ia", "ua"}}, e = {"-", {"e"}}, r = {"r", {"uan", "er"}}, t = {"t", {"ve", "ue"}}, y = {"y", {"uai", "ing"}}, u = {"sh", {"u"}}, i = {"ch", {"i"}}, o = {"", {"o", "uo"}}, p = {"p", {"un"}},
	a = {"-", {"a"}}, s = {"s", {"ong", "iong"}}, d = {"d", {"uang", "iang"}}, f = {"f", {"en"}}, g = {"g", {"eng"}}, h = {"h", {"ang"}}, j = {"j", {"an"}}, k = {"k", {"ao"}}, l = {"l", {"ai"}},
	z = {"z", {"ei"}}, x = {"x", {"ie"}}, c = {"c", {"iao"}}, v = {"zh", {"ui", "v"}}, b = {"b", {"ou"}}, n = {"n", {"in"}}, m = {"m", {"ian"}},
-- 拼音加加方案
	q = {"q", {"er", "ing"}}, w = {"w", {"ei"}}, e = {"-", {"e"}}, r = {"r", {"en"}}, t = {"t", {"eng"}}, y = {"y", {"iong", "ong"}}, u = {"ch", {"u"}}, i = {"sh", {"i"}}, o = {"", {"o", "uo"}}, p = {"p", {"ou"}},
	a = {"-", {"a"}}, s = {"s", {"ai"}}, d = {"d", {"ao"}}, f = {"f", {"an"}}, g = {"g", {"ang"}}, h = {"h", {"iang", "uang"}}, j = {"j", {"ian"}}, k = {"k", {"iao"}}, l = {"l", {"in"}},
	z = {"z", {"un"}}, x = {"x", {"uai", "ue", "ve"}}, c = {"c", {"uan"}}, v = {"zh", {"ui", "v"}}, b = {"b", {"ia", "ua"}}, n = {"n", {"iu"}}, m = {"m", {"ie"}},
-- 智能 ABC 方案
	q = {"q", {"ei"}}, w = {"w", {"ian"}}, e = {"-", {"e"}}, r = {"r", {"iu", "er"}}, t = {"t", {"iang", "uang"}}, y = {"y", {"ing"}}, u = {"-", {"u"}}, i = {"-", {"i"}}, o = {"", {"o", "uo"}}, p = {"p", {"uan"}},
	a = {"zh", {"a"}}, s = {"s", {"ong", "iong"}}, d = {"d", {"ia", "ua"}}, f = {"f", {"en"}}, g = {"g", {"eng"}}, h = {"h", {"ang"}}, j = {"j", {"an"}}, k = {"k", {"ao"}}, l = {"l", {"ai"}},
	z = {"z", {"iao"}}, x = {"x", {"ie"}}, c = {"c", {"in", "uai"}}, v = {"sh", {"v", "ve", "ue"}}, b = {"b", {"ou"}}, n = {"n", {"un"}}, m = {"m", {"ue", "ve", "ui"}},
-- 紫光拼音方案
	q = {"q", {"ao"}}, w = {"w", {"en"}}, e = {"-", {"e"}}, r = {"r", {"an"}}, t = {"t", {"eng"}}, y = {"y", {"in", "uai"}}, u = {"zh", {"u"}}, i = {"sh", {"i"}}, o = {"", {"o", "uo"}}, p = {"p", {"ai"}},
	a = {"-", {"a"}}, s = {"s", {"ang"}}, d = {"d", {"ie"}}, f = {"f", {"ian"}}, g = {"g", {"iang", "uang"}}, h = {"h", {"iong", "ong"}}, j = {"j", {"er", "iu"}}, k = {"k", {"ei"}}, l = {"l", {"uan"}}, [';'] = {"-", {"ing"}},
	z = {"z", {"ou"}}, x = {"x", {"ia", "ua"}}, c = {"c", {}}, v = {"-", {"ui", "v"}}, b = {"b", {"iao"}}, n = {"n", {"ue", "ve", "ui"}}, m = {"m", {"un"}},
-- 紫光拼音方案改 ('ing' 由 ; 移动到 C 键)
	q = {"q", {"ao"}}, w = {"w", {"en"}}, e = {"-", {"e"}}, r = {"r", {"an"}}, t = {"t", {"eng"}}, y = {"y", {"in", "uai"}}, u = {"zh", {"u"}}, i = {"sh", {"i"}}, o = {"", {"o", "uo"}}, p = {"p", {"ai"}},
	a = {"-", {"a"}}, s = {"s", {"ang"}}, d = {"d", {"ie"}}, f = {"f", {"ian"}}, g = {"g", {"iang", "uang"}}, h = {"h", {"iong", "ong"}}, j = {"j", {"er", "iu"}}, k = {"k", {"ei"}}, l = {"l", {"uan"}},
	z = {"z", {"ou"}}, x = {"x", {"ia", "ua"}}, c = {"c", {"ing"}}, v = {"-", {"ui", "v"}}, b = {"b", {"iao"}}, n = {"n", {"ue", "ve", "ui"}}, m = {"m", {"un"}},
--]]
Comment by oldh...@gmail.com, Mar 27, 2010

建议增加按Enter直接插入英文字母(不进行转换)。要支持双拼

Comment by project member arcpp.zju@gmail.com, Mar 27, 2010

@oldherl, 不太好,我一直反对把非拼音当作拼音输入…… 这样的话会有一大堆没用的请求发过去,缓存也会存有不少没用的东西。另外,回车键本来就是用来换行的,在输入一篇比较长的文章的时候,目前设计的回车键的行为是比较好的。

我想到了一种其他的解决方案,下个版本中提供~

Comment by john...@gmail.com, Apr 16, 2010

你好,请问对于ubuntu9.10,配置文件应该放在什么目录呢? $XDG_CONFIG_HOME变量的值为空。。。

Comment by project member arcpp.zju@gmail.com, Apr 17, 2010

@john.37 已在上文中说明。

Comment by diablo...@gmail.com, May 9, 2010

我没有找到可以设置默认打开选词列表的选项,虽然作者你希望尽量以整句输入的方式来进行中文输入,但是有很多时候不可避免的要输入单字和一个词,所以我希望作者能够在以后的版本中提供一个可以默认打开选词列表的选项,这样就解决了很多人的使用习惯问题。 PS:这个输入法真的是很棒。浙大牛人啊

Comment by 423...@gmail.com, May 10, 2010

领略了lua的强大。

Comment by cheny...@gmail.com, May 14, 2010

如何配置使得搜狗启动时自动进入离线模式?

Comment by ym.xia...@gmail.com, Aug 25, 2010

set_switch{

default_chinese_mode = true, default_offline_mode = false, default_traditional_mode = false, double_pinyin = false, background_request = true, show_raw_in_auxiliary = true, always_show_candidates = true, show_pinyin_auxiliary = true,
} 在你的用户配置文件中将上面的default_offline_mode = false个改成true就是离线模式了,如果没有上面一段,自己加上,这段配置都没进行说明,是在全局配置文件中看到了

Comment by kris....@gmail.com, Oct 25, 2010

怎么发现配置文件没起作用呢,需要禁止全局配置文件吗? 使用ibus-daemon -rxd重启过了。 修改权限改了 .config下的配置文件也不行,哪里还需要注意。 另外发现在chrome中打一句话的时候,如果直接按回车会出现一串字,比如: 这是直接按回车输入的话 这是直接按回车输入的话 这是直接按回车输入的话 这是直接按回车输入的话 这是直接按回车输入的话 这是直接按回车输入的话

Comment by andyli...@gmail.com, May 9, 2011

请问输入一串字符后并且按了分号然后发现某一个字符输入错误这时候该如何回退呢?

Comment by andyli...@gmail.com, May 9, 2011

请问输入一串字符后并且按了分号然后发现某一个字符输入错误这时候该如何回退呢?


Sign in to add a comment
Powered by Google Project Hosting