# TerminalMate — The TextMate Terminal
TerminalMate is a terminal for TextMate. It is inspired by emacs's inferior-modes.
* [Download](http://generalconsumption.org/projects/TerminalMate/)
-- Daniel
Any chance this can wander into the subversion repository? I have a need for something exactly like this and the motivation to submit patches.
Also -- I grabbed the DMG and dropped the tmbundle/tmplugin into the right spots and:
/Volumes/Data/Users/bbum/Library/Application Support/TextMate/Bundles/ TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `initialize': No such file or directory - /Volumes/Data/Users/bbum/Library/ Application Support/TerminalMate/server.bin (Errno::ENOENT) from /Volumes/Data/Users/bbum/Library/Application Support/TextMate/ Bundles/TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `open' from /Volumes/Data/Users/bbum/Library/Application Support/TextMate/ Bundles/TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `initialize' from /tmp/temp_textmate.Ys206J:4:in `new' from /tmp/temp_textmate.Ys206J:4
On 30. Oct 2006, at 17:23, Bill Bumgarner wrote:
Any chance this can wander into the subversion repository? I have a need for something exactly like this and the motivation to submit patches.
If Daniel is up for it, sure -- I think there is a lot of interest in this project.
Though the iTerm framework seems to be GPL, so we wouldn’t be able to include it with TextMate.
Also -- I grabbed the DMG and dropped the tmbundle/tmplugin into the right spots and:
It also fails for me, the plug-in itself is not loaded:
2006-10-30 18:03:46.232 TextMate[21714] *** -[NSBundle load]: Error loading code /Users/duff/Library/Application Support/TextMate/PlugIns/ TerminalMate.tmplugin/Contents/MacOS/TerminalMate for bundle /Users/ duff/Library/Application Support/TextMate/PlugIns/ TerminalMate.tmplugin, error code 4 (link edit error code 4, error number 0 (Library not loaded: @executable_path/../Frameworks/ Growl.framework/Versions/A/Growl Referenced from: /Users/duff/Library/Application Support/TextMate/ PlugIns/TerminalMate.tmplugin/Contents/MacOS/../Frameworks/ iTerm.framework/Versions/A/iTerm Reason: image not found))
On Oct 30, 2006, at 5:23 PM, Bill Bumgarner wrote:
Any chance this can wander into the subversion repository? I have a need for something exactly like this and the motivation to submit patches.
I think i will put in SVN once I get the first working release out :).
Also -- I grabbed the DMG and dropped the tmbundle/tmplugin into the right spots and:
/Volumes/Data/Users/bbum/Library/Application Support/TextMate/ Bundles/TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `initialize': No such file or directory - /Volumes/Data/Users/bbum/ Library/Application Support/TerminalMate/server.bin (Errno::ENOENT) from /Volumes/Data/Users/bbum/Library/Application Support/TextMate/ Bundles/TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `open' from /Volumes/Data/Users/bbum/Library/Application Support/TextMate/ Bundles/TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `initialize' from /tmp/temp_textmate.Ys206J:4:in `new' from /tmp/temp_textmate.Ys206J:4
The error is from missing Growl.framework (it's actually there, but has the incorrect path to the shared library). The problem is, I don't think you can have a layout like: `iTerm.framework/Versions/A/ Frameworks/Growl.framework` where `otool -L iTerm.framework/Versions/ A/iTerm` is
… @loader_path/Frameworks/Growl.framework/Versions/A/Growl …
I tried this, and it did not work. It is complicated to setup, however, so I may have made an error.
Solutions:
1. Include a script the user must run after installation. The script would run install_name_tool and change the shared library path of the iTerm framework linked against the Growl.framework to an absolute path. This solution requires the user have the Apple Developer Tools installed.
2. Have Allan include Growl.framework with TextMate, and just use `@exectuable_path` like normal. We would also include the Python/Perl/ Ruby extensions so you actually could use Growl from some of the bundles. I'm not sure how useful that would be, but it could be interesting for longer running commands.
-- Daniel
On Oct 30, 2006, at 9:54 AM, Daniel Harple wrote:
I tried this, and it did not work. It is complicated to setup, however, so I may have made an error.
Solutions:
- Include a script the user must run after installation. The script
would run install_name_tool and change the shared library path of the iTerm framework linked against the Growl.framework to an absolute path. This solution requires the user have the Apple Developer Tools installed.
- Have Allan include Growl.framework with TextMate, and just use
`@exectuable_path` like normal. We would also include the Python/ Perl/Ruby extensions so you actually could use Growl from some of the bundles. I'm not sure how useful that would be, but it could be interesting for longer running commands.
Or you could use NSBundle to dynamically load the framework. You would probably want a bootstrap loader that TM would load and then it would load Growl, iTerm and your real code in the proper order.
Likely easier than requiring scripts or doing (2).
b.bum
On Oct 30, 2006, at 6:57 PM, Bill Bumgarner wrote:
Or you could use NSBundle to dynamically load the framework. You would probably want a bootstrap loader that TM would load and then it would load Growl, iTerm and your real code in the proper order.
Likely easier than requiring scripts or doing (2).
Good suggestion. I'll have to add checking in /Library also, but for now it works (I think).
New release at http://generalconsumption.org/projects/TerminalMate/
-- Daniel
On Oct 30, 2006, at 11:21 AM, Daniel Harple wrote:
Good suggestion. I'll have to add checking in /Library also, but for now it works (I think).
New release at http://generalconsumption.org/projects/TerminalMate/
Woot! It appears to be working though I'll have to reboot into something more stripy to report any useful bugs.
b.bum
Hi,
could anybody explain what a typical workflow for using TerminalMate might be. My naive expectation was a terminal that existed inside TextMate that benefited from all of the lovely syntax highlighting and snippets etc. (I still have a fond dream of irb inside TextMate, but just can't seem to spawn a new background process without stalling the whole of TextMate).
However, on calling the bundle, I just get a separate iTerm window. Does it have special properties? Am I seeing a stone, where others can see an uncut gem?
Thanks, Sam Aaron
On 31/10/06, Sam Aaron sam.maillists@googlemail.com wrote:
Hi,
could anybody explain what a typical workflow for using TerminalMate might be. My naive expectation was a terminal that existed inside TextMate that benefited from all of the lovely syntax highlighting and snippets etc. (I still have a fond dream of irb inside TextMate, but just can't seem to spawn a new background process without stalling the whole of TextMate).
However, on calling the bundle, I just get a separate iTerm window. Does it have special properties? Am I seeing a stone, where others can see an uncut gem?
I was actually wanting this only a few days ago. I use python, and I can now select a piece of code and with one keystroke, run it in an interpreter and check that it does something sensible, doesn't have syntax errors, etc.
The only extra thing I would want from it is a command that checks the file for any import statements and runs those before it pastes the command in.
It's very handy, but it's probably not going to be a revelation in the way you work (or at least not for me). It's just a quick sanity check that saves you having to run a terminal in another window, switch to it, paste in your code, etc.
Ed
On Oct 31, 2006, at 4:20 AM, Sam Aaron wrote:
I still have a fond dream of irb inside TextMate...
Just to be sure, are you aware of all the ways to run Ruby code inside of TM?
* Text -> Execute Line Returning Result (⌃R) * Bundles -> Ruby -> Execute Line as Ruby (⌃⇧E) * Bundles -> Ruby -> Execute and Update '# =>' Markers (⌃⇧⌘E)
Each is handy in different circumstances, so it pays to spend a little time fiddling with all three.
Finally, add some great history dumping commands to your .irbrc, like:
http://blog.bleything.net/articles/2006/10/21/shell-style-history-for- irb
Those are great for dumping code you want to further develop in TextMate.
Hope that helps.
James Edward Gray II
0.1.2 has been released.
## Download
http://generalconsumption.org/projects/TerminalMate/
## News
### 0.1.2 * TerminalMate will now change directories to `TM_PROJECT_DIRECTORY` if it is set * Added support for Rails and Shell modes
TerminalMate is a terminal for TextMate. It is inspired by emacs's inferior-modes.
## Download
http://generalconsumption.org/projects/TerminalMate/
## News
### 0.2 * Sending input after you close a terminal will now not crash TextMate.
On Nov 1, 2006, at 10:39 AM, Daniel Harple wrote:
TerminalMate is a terminal for TextMate. It is inspired by emacs's inferior-modes.
## Download
http://generalconsumption.org/projects/TerminalMate/
## News
### 0.2
- Sending input after you close a terminal will now not crash
TextMate.
/Users/jay/Library/Application Support/TextMate/Pristine Copy/Bundles/ TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `initialize': No such file or directory - /Users/jay/Library/Application Support/ TerminalMate/server.bin (Errno::ENOENT) from /Users/jay/Library/Application Support/TextMate/Pristine Copy/ Bundles/TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `open' from /Users/jay/Library/Application Support/TextMate/Pristine Copy/ Bundles/TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `initialize' from /tmp/temp_textmate.PxRDTr:4:in `new' from /tmp/temp_textmate.PxRDTr:4
% zipinfo TerminalMate-0.2.zip | grep server.bin %
?
j.
On Nov 1, 2006, at 5:46 PM, Jay Soffian wrote:
/Users/jay/Library/Application Support/TextMate/Pristine Copy/ Bundles/TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `initialize': No such file or directory - /Users/jay/Library/ Application Support/TerminalMate/server.bin (Errno::ENOENT) [...]
Please include the output from Console.app next time, too. Does this update solve the problem?
http://generalconsumption.org/projects/TerminalMate/ TerminalMate-0.2.1.zip
-- Daniel
On 2006-11-01 18:07:27 +0100, Daniel Harple dharple@generalconsumption.org said:
On Nov 1, 2006, at 5:46 PM, Jay Soffian wrote:
/Users/jay/Library/Application Support/TextMate/Pristine Copy/ Bundles/TerminalMate.tmbundle/Support/lib/terminal_mate.rb:7:in `initialize': No such file or directory - /Users/jay/Library/ Application Support/TerminalMate/server.bin (Errno::ENOENT) [...]
Please include the output from Console.app next time, too. Does this update solve the problem?
http://generalconsumption.org/projects/TerminalMate/ TerminalMate-0.2.1.zip
-- Daniel
Works.