Windows7 32bits 環境,Sublime Text3 安裝,參考這個帖子,http://www.xiumu.org/note/sublime-text-3.shtml 不解釋。我是使用VIM模式的,如果不用VIM模式,下面的AHK腳本可能不正常工作。
Python安裝2.7.8, 另外安裝了 ipython。控制台使用的是 ConEmu。ipython和ConEmu都在PATH中可以搜索到。
直接安裝SublimeCodeIntel - dev 版,實現代碼的自動補全,很爽。穩定版 Windows下有問題,不能用!
我需要實現的是,代碼在 SublimeText 中完成,快捷鍵送到 python下執行。試驗了 SublimeREPL,發現python在sublimetext中非常慢,而且sublimeREPL中的ipython環境顯示的顏色是按照代碼着色的,很不爽。因為有時候會出現代碼錯誤提示信息,且由於信息太長,顯示不全。這時候,可能只有一個引號出現,sublimetext着色的時候,就認為字符串開始了,而且沒有結束。反正各種不爽。
其實比較喜歡的方式是 Enhanced-R的方式,通過Autohotkey,把代碼發送到 R 環境中。既然沒有現成的,只好自己寫一個簡單的湊合用了。
1. 在SublimeText中實現打開ConEmu和ipython。在SublimeTex的插件目錄中,例如:d:\Program Files\Sublime Text\Data\Packages\,新建目錄 CMD,在CMD中,新建文件 cmd.py,輸入如下內容,
1 import os, sublime_plugin 2 class CmdCommand(sublime_plugin.TextCommand): 3 def run(self, edit): 4 file_name=self.view.file_name() 5 path=file_name.split("\\") 6 current_driver=path[0] 7 path.pop() 8 current_directory="\\".join(path) 9 command= "cd "+current_directory+" & "+current_driver+" & start ConEmu /cmd ipython" 10 os.system(command)
2. 在CMD目錄中,創建文件Context.sublime-menu,輸入如下內容,
[ { "command": "cmd" } ]
這樣在SublimeText中可以通過右鍵打開ipython環境,並且是在當前文件的目錄下。
3. 安裝 Autohotkey,創建hotkey.ahk文件,如下,
SetTitleMatchMode, 3 SetTitleMatchMode, Fast SetKeyDelay, 10, 10 IfWinActive ahk_class PX_WINDOW_CLASS { #s:: Send ^c IfWinExist ahk_class VirtualConsoleClass { WinActivate Send {Enter} Send {ASC 0037}paste {Enter} } return #b:: Send ^c IfWinExist ahk_class VirtualConsoleClass { WinActivate Send {Enter} Send {ASC 0037}paste {Enter} WinActivate ahk_class PX_WINDOW_CLASS } return }
把文件編程成可執行文件,(autohotkey自帶ahk2exe工具),添加到開機執行菜單中。
這樣,通過 Win+s 鍵就可以把選擇的行發送到 ipython里面執行了,(如果沒有選擇,就發送當前行)。Win+b是發送選擇的行,但光標停留在當前窗口。