-
Notifications
You must be signed in to change notification settings - Fork 0
Cookbook: Using IPython with TextMate
TextMate is a text editor for OS X. It's (to some) EMACS done the Mac way. Here are some commands that I've found handy for integrating TextMate a bit with an IPython session running in OS X's Terminal.app. There's not much error checking in any of these, so YMMV. All of these scripts check if the current tab in Terminal.app is running a Python process. If it is, the script assumes it's an IPython instance and runs the appropriate command in that session. If the current tab is not running a Python process, these commands will open a new terminal window and start ipython (make sure it's on your PATH) and then run the appropriate command.
All of these code snippets should be entered into the "Command(s)" field of a new command. Set the scope to "source.python". You probably also want to set the Save: popup to "Current file", the Input: popup to "None" and the Output popup to "Discard". Of course you can set the key equivalent to be anything you want.
I've added the following commands to the Python bundle in my copy of TextMate and found them to be useful:
#!/bin/bash osascript <<- APPLESCRIPT tell application "Terminal" set currentTab to (selected tab of (get first window)) set tabProcs to processes of currentTab set theProc to (end of tabProcs) if theProc is not "Python" then set currentTab to (do script "ipython") end if do script "%run -e -i -n '$TM_FILEPATH'" in currentTab end tell APPLESCRIPT
#!/bin/bash osascript <<- APPLESCRIPT tell application "Terminal" set currentTab to (selected tab of (get first window)) set tabProcs to processes of currentTab set theProc to (end of tabProcs) if theProc is not "Python" then set currentTab to (do script "ipython") end if do script "%pdb" in currentTab end tell APPLESCRIPT
You must be in pdb/ipdb
#!/bin/bash osascript <<- APPLESCRIPT tell application "Terminal" set currentTab to (selected tab of (get first window)) set tabProcs to processes of currentTab set theProc to (end of tabProcs) if theProc is not "Python" then set currentTab to (do script "ipython") end if do script "break $TM_FILEPATH:$TM_LINE_NUMBER" in currentTab end tell APPLESCRIPT
#!/bin/bash osascript <<- APPLESCRIPT tell application "Terminal" set currentTab to (selected tab of (get first window)) set tabProcs to processes of currentTab set theProc to (end of tabProcs) if theProc is not "Python" then set currentTab to (do script "ipython") end if do script "clear $TM_FILEPATH:$TM_LINE_NUMBER" in currentTab end tell APPLESCRIPT