天天看點

讓Mac版Sublime text3的Vintage插件切換指令模式時自動切換到英文輸入法

[b]問題:[/b]

sublime text3開啟vintage插件(vim鍵模式)後,按Esc鍵切換到指令模式後,如果目前輸入法是中文,需要再按快捷鍵切換到英文輸入法,才能正常使用指令模式。是以很是麻煩。本文嘗試解決這個麻煩。

之前寫過針對sublime text2的文章[url]http://bellstar.iteye.com/blog/1671006[/url],本篇的内容應該也适用sublime text2,隻是我沒有試。這篇的方法比之前的那個更好,它不需要安裝别的插件,改别人的插件。但是也需要手動寫一個插件,當然,有空的話,能将下面的東西打包成一個獨立插件釋出最好。

[b]解決:[/b]

我是這樣做的:注冊escape鍵,按下時執行run_multiple_commands,這條指令又會執行預定義的subprocess_in_cwd和exit_insert_mode兩條指令,其中subprocess_in_cwd會調用外部的changeInputMethod這條指令。(subprocess_in_cwd和exit_insert_mode都是sublime text3自帶的指令)。

整個過程是這樣的,在插入模式時,按Escape鍵後,将自動将輸入法切換到英文并退出插模式,即進入指令模式。

changeInputMethod是用objective-c實作的,run_multiple_commands是以sublime text3自定義插件的形式實作的,都已包含在附件中。

[b]安裝:[/b]

将RunMultipleCommands.py檔案copy到sublime text3的packages/user/目錄下,将下面鍵映射的内容加入Default (OSX).sublime-keymap。将changeInputMethod放到/usr/local/bin目錄下(如果不在此目錄下,需要相應的更改下方配置的參數)