Code and text editors on MacOS X

by Tom on June 21, 2010

One of the things we spend the most time doing as astronomers is writing text and/or code, whether to develop a pipeline to reduce/plot data, write papers/proposals, or write simulation codes. Choosing a good text editor is just as important as having a good chair to sit on, and can have a big impact on productivity! In this post, I will go over a few of the best text/code editors out there for MacOS X.

Update (Sep 21, 2012 by Kelle): New text editor on the block is Sublime Text and it looks just as powerful as TextMate, but more so. Many packages are available for both LaTeX and Python (but maybe not IDL, as far as I can tell). Check out these tutorials to see some of the more advanced features in action. Sublime will cost your grant (or your advisor’s grant) $70 USD.

If any text editor can be compared to a swiss army knife, it is TextMate. It provides support, through bundles, to over 150 programming languages (C/C++, Fortran, Python, Perl, Ruby, LaTeX, HTML, …) and tools (subversion, diff, mercurial, …). One can create projects with multiple files, search and replace text simultaneously in many files, and typeset LaTeX files. Customizable syntax highlighting makes writing text/code pleasant, and code collapsing and expanding makes editing long programs much more manageable (for example, one can ‘collapse’ if statements and do loops in Fortran). One great feature is the ability to just type ‘mate filename’ or ‘mate directory’ on the command-line, and have the file or directory open in TextMate. A number of bundles are installed by default to support programming languages, but if your favorite one is missing, there are instructions on installing bundles here. Be sure to check out the screencasts to make the most out of TextMate. At around $50, a license is a little pricey, but you can try out a 30-day demo to help you decide whether you like it! There is a 15% education discount, and larger discounts if you order 4 or more licenses.

Emacs needs no introduction, but what I want to mention here is not the old command-line emacs, nor the X11 version xemacs, nor the modified emacs for OSX, Aquamacs, but the official Emacs which is now available in native mode for MacOS X (no X11 needed). Emacs has support for many programming languages, and has fantastic auto-indent capabilities: despite being a heavy TextMate users, I always run Fortran 95 files through Emacs to tidy up the indentation! The Emacs team does not provide pre-built Mac versions, but cutting edge builds can be downloaded from this website. Emacs is, of course, free.

Another (free) powerful text editor that is definitely worth trying out is TextWrangler which is a ‘lite’ version of the commercial editor BBEdit. TextWrangler is simpler than TextMate, but has saved me in a few cases where strange non-ASCII characters have made it into a text file, as it has a nice ‘Zap Gremlins’ feature than can remove any non-ASCII character. Syntax highlighting is of course present, as well as the ability to open multiple files in the same window. One very useful feature is the ability to edit a file directly from an FTP or SFTP server (SFTP basically allows you to access files on any computer that is accessible through SSH).

Finally, no discussion of text/code editors would be complete without mentioning the unavoidable TexShop that many of us already use to write papers/proposals. It is a great LaTeX editor, but many users miss out on some very useful features. Some features that may have eluded users are: if you press the command (apple) key and click on a word in the source, it will show it in the PDF, and vice-versa; there are very useful LaTeX and Matrix windows in the ‘Window’ menu, that make it easy to insert mathematical/greek symbols, and build matrices, without having to lookup how to do this on the web; and there are many scripts to typeset a file, not just the default ‘Latex’: for example, the cryptically named ‘latexmk’ will actually run the usual latex/bibtex/latex/latex that BibTeX users are familiar with.

These are just a few of the text/code editors available on MacOS X, but we think that these are some of the best available. Do you use any of these? Do you know of any other great text/code editors?

TextMate, $50, $42.50 educational, bulk and site licenses
Sublime, $70
Emacs, free
TextWrangler, free
TexShop, free

{ 13 comments… read them below or add one }

1 Marcos June 21, 2010 at 8:13 am

Just a reminder that if you use the FTP/SFTP client Cyberduck, it can invoke any number of editors in addition to TextWrangler on text files on the server, automagically downloading and re-uploading the file seamlessly. Even though I use TextWrangler, I always used it on remote files via Cyberduck.

Reply

2 John June 21, 2010 at 8:22 am

Linking back to the previous discussion, you can, of course, use Macports to install the native (Cocoa) version of Emacs:

$ sudo port install emacs-app

And, of course, there’s also (Mac)Vim (also available from Macports).

Personally, I don’t like learning different editors for different platforms, so, since it’s not generally possible to use Macs exclusively, I prefer to stick to one of those.

Reply

3 Matt K June 21, 2010 at 12:23 pm

I’d add to John’s comment that MacVim http://code.google.com/p/macvim/ is coded as a native Mac application, and is very fast, with syntax highlighting and auto indenting to your heart’s content.

For writing documentation and general LaTeX goodness, LyX http://www.lyx.org/ is pretty good as a LaTeX WYSIWYM editor, and the export to latex has saved me many a headache.

Reply

4 Kelle June 21, 2010 at 1:47 pm

Transmit is another FTP client that has a remote editing feature. Actually, the new version of Transmit deserves its own post….

Reply

5 Kathleen L June 21, 2010 at 3:56 pm

Thanks for the summary. I will definitely check those tools out, except emacs which I despise (I know, heresy).

I am still an old fan of nedit; simple, complete, easy to customize, and works on Linux too, which gives me a uniform interface as a work on my various computers. The best way to install it on Mac is through Fink.

For software development, especially when a repository is involved, a software engineer introduced me to Eclipse. I have to admit that it is quite good. I use only a sliver of the features it offers but those are totally worth it. The svn handling is a great time saver. It is a bit confusing to install, especially the plug-ins, however.

Reply

6 Marcos June 24, 2010 at 1:03 pm

Transmit is indeed a legendary FTP client. Of course then there is Coda too., but I don’t know that would be a good choice for non web-developer types.

Reply

7 Shashi June 28, 2010 at 8:35 am

Try TeXworks : http://code.google.com/p/texworks/ – it is a cross platform editor and previewer for latex. I like the feature where one can jump from the pdf to the latex source and continue editing at that point. Works with multiple file source documents too!

Reply

8 Eli July 6, 2010 at 7:07 pm

Shashi, thanks for the recommendation to TeXworks. I’m currently using OSX and Ubuntu between two work environments and this multi-platform TeX editor is great. For such a young project it’s impressive!

Reply

9 Ross August 3, 2010 at 4:28 am

As I already use Eclipse for Java programming, I’ve also installed its PyDev extension for Python development, and TeXlipse extension for LaTeX typesetting. It does all three things very well and in the same environment with support for version control via SVN etc. My only gripe is that its a bit of memory hog and slower than any native application would be, but no native application comes close to the breadth of features Eclipse provides (and it is cross-platform after all).

I haven’t tried X-Code for development, apparently it supports Python too, has anyone else tried it?

Reply

10 Basavaraj September 21, 2013 at 5:03 am

Nice and useful write up about editors

Was wondering why no mention of sublimetext, which is a cross platform editor, i use this on all 3 big OS (OS X, Ubuntu, Win 8) and it works smoothly

it is similar to TexMate with a python based bundle concept and can support many programming languages

Reply

11 Kelle September 21, 2013 at 10:20 am

There is no mention of it because this post was written on 2010 and it looks like Sublime only started to get traction in 2012-ish. Anyway, it is absolutely an editor worth considering. Here are some tutorials which demo the more advanced and compelling features: http://net.tutsplus.com/articles/news/perfect-workflow-in-sublime-text-free-course/

12 Stas Ustimenko June 4, 2015 at 9:27 am

I recommend Codelobster: http://www.codelobster.com
It works much better for me

Reply

13 Tim October 6, 2015 at 1:07 pm

I’ve been trying Archimedes on OS X for some light writing that involves mathematical equations: http://www.mattrajca.com/archimedes . Love its inline support for LaTeX.

Reply

Leave a Comment

Previous post:

Next post: