编辑python用什么输入法_如何在python中更改iBus输入法?

我正在编写一个Vim插件来设置iBus引擎和输入方法。到目前为止,我可以用以下代码更换发动机:function! im#setEngine(name)

python << EOF

try:

import ibus,vim

bus = ibus.Bus()

ic = ibus.InputContext(bus, bus.current_input_contxt())

name = vim.eval("a:name")

engines = bus.get_engines_by_names([name])

size = len(engines)

if size <= 0:

print "Could not find engine %s"%name

else:

engine = engines[0]

ic.set_engine(engine)

except Exception, e:

print "Failed to connect to iBus"

print e

EOF

endfunction

function! im#listEngines()

let l:engines = []

python << EOF

try:

import ibus,dbus,vim

bus = ibus.Bus()

names = []

for engine in bus.list_engines():

names.append(str(engine.name))

vim.command("let l:engines = %s"% names)

except Exception, e:

print "Failed to connect to iBus"

print e

EOF

return l:engines

endfunction

现在我也在尝试设置引擎的输入法,但我无法找到如何做到这一点。到目前为止,iBus的文档还缺少细节。在

有人能提供一些关于如何用程序(Python)改变iBus输入方法的指针或例子吗?另外,有一种方法可以为每个引擎获取支持的输入方法列表。在

===

从这一点上,我将尝试提供更多关于我试图解决的问题的背景。如果你不感兴趣就跳过。在

我实现了这个插件vim-im,以便在进入Vim正常模式时禁用输入方法。这一点很重要,因为如果iBus设置为非ascii输入方法,则Vim normal模式不可用。如果你用vim来写日语,中文,韩语等等。。。你可以理解这个问题。在

问题是,由于ibus1.5,我的插件所依赖的enable/disable方法被弃用了。所以我的插件可以在Ubuntu&lt;=13.04中使用,但在Debian-Jessie中没有,而且可能也无法在未来的Ubuntu版本上运行。在

我看到具有类似功能的唯一方法是定义一个默认的iBus引擎和输入方法,并在每次Vim进入normal模式时将iBus更改为那些。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值