我正在编写一个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更改为那些。在

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

  1. python绘图背景透明_如何在 Matplotlib 中更改绘图背景

    介绍Matplotlib是Python中使用最广泛的数据可视化库之一.无论是简单还是复杂的可视化项目,它都是大多数人的首选库.在本教程中,我们将研究如何在Matplotlib中更改绘图的背景.导入数据 ...

  2. python设置横坐标间隔_如何在matplotlib中更改刻度之间的间距?

    刻度标签之间的间距完全由轴上刻度之间的间距决定.因此,在给定的ticklabel之间获得更多空间的唯一方法是使轴更大. 为了确定标签不重叠所需的空间,可以找出最大的标签并将其长度乘以滴答标签的数量.然 ...

  3. python画图修改背景颜色_如何在 Matplotlib 中更改绘图背景的实现

    介绍 Matplotlib是Python中使用最广泛的数据可视化库之一.无论是简单还是复杂的可视化项目,它都是大多数人的首选库. 在本教程中,我们将研究如何在Matplotlib中更改绘图的背景. 导 ...

  4. linux 更改ssh端口_如何在Linux中更改SSH端口-简易指南

    linux 更改ssh端口 The default port on SSH is 22. But for security reasons, it's a good idea to change SS ...

  5. linux中更改用户密码_如何在Linux中更改用户密码

    linux中更改用户密码 In this tutorial, we will focus on how you can change a user's password in Linux. We wi ...

  6. linux重启网卡命令_如何在 Linux 中更改 MAC 地址 | Linux 中国

    在向你展示如何在 Linux 中更改 Mac 地址之前,让我们首先讨论为什么要更改它.-- Dimitrios Savvopoulos 在向你展示如何在 Linux 中更改 MAC 地址之前,让我们首 ...

  7. chrome修改摄像头权限_如何在Chrome中更改网站的摄像头和麦克风权限

    chrome修改摄像头权限 Google Chrome lets you manage which individual sites can have access to your microphon ...

  8. mac app图标简单制作_如何在Mac中更改App图标

    mac app图标简单制作 Sometimes, apps icon change but we like the older icon. Thankfully, it's very easy to ...

  9. linux重命名用户名_如何在Linux中更改或重命名用户名和用户ID?

    linux重命名用户名 The problem is we want to change the already created user name or user id. As we know th ...

  10. python右对齐 数字_如何在Python中右对齐数值数据?

    我有一些数据,我显示在3列格式,形式"键:值键:键:值键:值".这里有一个例子: p: 1 sl: 10 afy: 4 q: 12 lg: 10 kla: 3 r: 0 kl: 1 ...

最新文章

  1. mysql_cluster
  2. Homestead 使用总结
  3. DevExpress VCL Controls v15.1.5正式发布[附下载]
  4. 动态代理3之代理工厂实现
  5. 工作287:命名报错
  6. ulimit限制 新系统_Linux查看及修改系统的资源限制命令ulimit
  7. Quick BI V4.0功能“炸弹”来袭,重磅推出即席分析、模板市场、企业微信免密登录等强势功能
  8. SUSE,为企业云原生打造多模平台
  9. 08年冬季足协代表VS三水喜健友谊赛
  10. linux spidev 应用_嵌入式Linux设备树语法总结
  11. 判断两个图片的特征向量_自媒体图文写多少字效果最好?多少张图片最合适?...
  12. linux学习命令总结⑩②
  13. Linux防火墙开关命令
  14. python 3.5.2 下载(带资源免费)
  15. 计算机毕业设计SSM电影票网上订票系统【附源码数据库】
  16. java html模板_Java实现静态页面模板替换内容代码
  17. 【单片机/嵌入式】最完整学习路线
  18. 【mediasoup】网络控制4 :基于GoogCc 实现网络控制
  19. php pecl 扩展,PECL
  20. 蜂巢BeeconX|大型美容医院如何构建WiFi系统?

热门文章

  1. bebian修改菱形乱码
  2. DIMM 与 FB-DIMM 与 单/双通道
  3. MeterSphere开源持续测试平台完成麒麟软件NeoCertify认证
  4. php创作原声,抖音怎么自己创作原声 制作原声教程分享
  5. 低成本搭建、随时学习的在线培训学习系统!
  6. 李开复给中国大学生的第七封信—21世纪最需要的7种人才
  7. 影响 UITableView 滚动的流畅性的原因
  8. 13、音频路径的一些配置说明
  9. 通过Nginx实现系统更新中温馨提示页面
  10. 全世界32条谣言 你被骗了多少