让mac os下sublime text 2在切换到命令模式时自动切到英文输入法

sublime在应用了vim模式时,如果你正在插入模式下编辑中文,然后要切换到命令模式,此时输入法状态还是中文输入法,如果你不切换到英文输入法,就不能正常输入命令。而每次要切换输入法又很不方便。此文可以帮助mac os 10.8用户解决这个问题。

首先下载附件中的changeInputMethod.m,这是一个objective-c程序,用来切换输入法的。
然后编译它
name=changeInputMethod; gcc "$name".m -o "$name" -l objc -framework foundation -framework carbon


然后在sublime中安装Shell Turtlestein这个插件,

菜单中依次选择Sublime Text2-》Preferences -> Browse Packages...

打开Shell Turtlestein目录下的Shell_turtlestein.py,在文件尾部加入下面的代码并保存

class RunCmdAndExitInsertModeCommand(sublime_plugin.WindowCommand):
    def run(self, cmd=None, wait=False):
        cwd = cwd_for_window(self.window)
        run_cmd(cwd, cmd, wait)
        view = self.window.active_view()
        view.run_command('exit_insert_mode')


然后菜单中选择Sublime Text2-》Preferences ->Key Bindings - User

在打开的文件中加入下面的键映射代码
注意下面"cmd"后面的路径要修改成你存放changeInputMethod的位置
    {"keys": ["escape"], "command": "run_cmd_and_exit_insert_mode", "args": {
        "cmd": "/path/to/changeInputMethod U.S.",
        "wait": false
    },  "context": [
        { "key": "setting.command_mode", "operand": false },
        { "key": "setting.is_widget", "operand": false },
        { "key": "setting.vintage_ctrl_keys" },
        { "key": "auto_complete_visible", "operator": "equal", "operand": false}
    ]}


done.

猜你喜欢

转载自bellstar.iteye.com/blog/1671006