使用vim输入汉字有个很麻烦的问题,当使用
例如在汉字状态下按dd
删除一行,输入法会拦截dd
,显示dd
的备选汉字单词,
只有再按一次回车,才会删除掉这一行。
在Ubuntu上使用搜狗拼音输入法,这个冲突问题没有理想的解决方法,
只能使用Autokey实现一个变通的解决方案。
实现思路是:在使用Ctrl+,
开启输入法,
再关闭输入法。
这样就能保证无论使用
首先在搜狗拼音的设置里,将 中英文切换 快捷键设置为 Shift
,
切换搜狗拼音输入法快捷键 使用默认的 Ctrl + ,
;
然后Autokey里对
escKey:
keyboard.send_keys('<ctrl>+,')
keyboard.send_keys('<shift><escape>')
其Hotkey设置为[.*terminal.*|atom.*]
,
即某桌面应用的'Window Class'中带有terminal
或者atom
就采用自动关闭输入法策略,
例如Gnome terminal:gnome-terminal.Gnome-terminal
,
Terminator:x-terminal-emulator.X-terminal-emulator
,
Atom:atom.Atom
。
这样在其他应用(例如gedit)中使用
实验证明,发送组合键一定要用keyboard.send_keys('A+B')
的形式,
不能用send_key
。
特殊键的写法参考Special Keys, 注意最后一句话:
To combine two keys use a + sign - e.g. to press Control+Esc use
+
完整文档请参考Autokey Wiki。
API文档只能下载源码包(autokey-0.90.4.tar.gz), 解压后用浏览器打开doc/scripting/index.html文件。