I've been using TextMate for years and I'm productive and happy with it. However, I like to try other editors from time to time to see if I'm missing anything. Recently I spent some time learning Vim and I discovered a few things that I particularly liked.
1) Split windows -- not the kind of split windows you normally get in Mac applications, but the Vim style ones. In Vim you can easily navigate from the keyboard to your different splits and choose what files to display in each. Additionally, you don't have to reach for your mouse to create a split. When you split, Vim divides the space up for you which is what you want most of the time. I found that it is very handy when needing to view more than 1 file at a time, which in my case is most of the time. Closing splits is about as easy as they are to create -- all from the keyboard. Multiple windows isn't really the same thing because they are slow to setup and tear down.
2) Selective multifile grep -- in Vim you can use a regular expression to open a set of files, and then just grep across the open files.
3) Don't need arrow keys -- after years of editing with the mouse; I find it painful to reach for it. It hurts my right shoulder and shoulder blade. It even hurts to have to move my hand down to the arrow keys. However, in Vim it is easy to keep your hands resting on your keyboard with your shoulders relaxed. No reaching for the mouse or arrow keys.
Hi LaTeX users,
I'm working some more on the Typeset and View command, we are going to replace the default command that currently ships with TextMate. But I need some information. What process are TextMate's LaTeX users following for building their documents? I'm sure most of you are using bibtex, but what about other things like makeindex? Has everyone moved to a pure pdf-based process, or are some of you still using dvi/postscript? What are you using for pictures? Anything you can tell me will help.
I would also *love* example documents along with the expected output. This will aid in testing, and ensure that your particular process will be supported!
I had the same problem as described in a post from Sebastian on
Here is my error output:
Running bibtex on Exjobb (ny).tex
Traceback (most recent call last): File "/Users/peeter/Peeterprogram/
texMate.py", line 457, in texStatus, isFatal, numErrs, numWarns =
run_bibtex(texfile=fileName) File "/Users/peeter/Peeterprogram/
texMate.py", line 71, in run_bibtex return stat,fatal,err,warn
UnboundLocalError: local variable 'stat' referenced before assignment
It seems that it had to do with the parentheses in my filename messing
up the regexes.
My solution was to change lines 71 and 72 in Textmate.app/Contents/
SharedSupport/Bundles/Latex.tmbundle/Support/bin/texMate.py as follows:
# auxfiles = [f for f in os.listdir('.') if re.search('.aux
$',f) > 0]
# auxfiles = [f for f in auxfiles if re.match(r'('+ basename +
auxfiles = [f for f in os.listdir('.') if re.search('.aux$',f)
> 0 and (f.startswith(basename) or re.match(r'bu\d+\.aux', f))]
This works, at least for me.
Or have I messed something else up in the process?
I'm using rake in a (mostly) non-ruby project, and so started looking into TextMate's support for running rake tasks.
I discovered that my project automatically has a scope of attr.project.rake, and so I set the Ruby bundle's "Run Rake Task" command to include this scope. However when I execute the command I don't see a full list of the available tasks, I just see the following two:
- (default task)
The project requires JRuby (as it uses JDBC), and so I then tried setting TM_RUBY to use the correct ruby (normally I want textmate to use the system ruby regardless, as using jruby really slows down bundle commands and such). Now I get this error:
/Users/adsharp/.rvm/rubies/jruby-220.127.116.11/lib/ruby/1.8/erb.rb:715 warning: SAFE levels are not supported in JRuby
NotImplementedError: Process::Status#exited? not implemented
(root) at /Users/adsharp/Library/Application Support/TextMate/Managed/Bundles/Ruby.tmbundle/Support/RakeMate/rake_mate.rb:42
Here I'm well beyond my level of expertise. Is there anything I can do here to enable use of the "Run Rake Task" command in my JRuby/Rake project?
Another question regarding the subversion bundle:
I understand the scope of the operation is selected by marking the file or folder in the file browser pane. In TM1 the parent folder had its own item at the very top, so it could be selected instead of a subfolder or file. Now, if my list of files is shorter than the space in the file browser pane, I can click in the empty space to get the parent folder as scope. However, I haven't found how to do this if my list of files/subfolders fills the entire pane.
And here are some other things; sorry if they've been covered before, but I didn't see them mentioned:
Is it possible to detach the results view from the window? For both tasks I use (LaTeX type setting and SVN) having this view attached to the main project window wastes a lot of space, as the information is concentrated in the left third or so of the window. Vertical extent of that window is more important.
So can I get the old detached windows back?
Can bundles in file browser get a triangle so they can be unfolded? Having to do the right-click, 'show package content' thing is a bit cumbersome (especially since you then dive into the hierarchy).
Find window: can the result view for 'find all' get horizontal scrolling and and option for line wraps? Right now I cannot see the results of my search for long lines.
PS: I'm very, very happy to see the frequent updates. I'm prepared to pay (again) for TM2 once it becomes stable.
TM2s HTML output window is somewhat limited compared to TM1:
- it uses sort of *tabs*, so I can't have multiple windows next to each other (handy to remove clutter and usually welcome, but when I run multiple apps/scripts in parallel I need separate windows to monitor them)
- it only allows one 'long running' process at a time
Since my projects often include multiple apps and/or scripts that interdepend and I need to run them side by side (eg client server etc). I used to use HTML output windows, so that I could have specially formatted log messages be clickable and get me to the correct location in the source code etc.
So I wrote an application that provides multiple HTML output windows and remembers their individual placement and size. It is called ApLo, and available as source here:
and wrapped into a TextMate bundle here:
For starters I wrote an Xcode4 bundle that goes with it:
As time permits I plan to add support for iOS projects as well, and STDOUT/STDERR parsers for other languages (perl, lua) as I come across them.
Maybe these bundles will be useful for others as well.
I regularly run the uncrustify command to tidy up my ObjC source, often when I do this the syntax colouring in the current file becomes broken until I make an edit (like a new line return), does anyone know a way to force a refresh of the syntax colouring after a command that replaces the entire document?
Just an idea, maybe it's like this for a good reason, but it's always bugged me that the "Go To" windows just float around. I can see a few reasons why it's awkward (at least for me):
• if you're using multiple displays the "Go To" windows can end up opening on a different display than the actual textmate window you're calling it from, this seems to be inconsistent amongst them though
• if you have multiple projects open, the "Go To" position is shared, so if you move it over to the current textmate project window that you're working with and then switch to the other project, the "Go To" window will be in its last location
• in general it feels like it brings you out of the interface the way they are implemented now
Not like there are "bugs" or real problems with it, but i do feel like interface wise, it's a little clumsy. Thoughts?