Side-by-Side File Comparison Plugin for Sublime

I found a nice side-by-side file comparison plugin for Sublime called Glue Views. Something cool about Glue Views is that it supports more than two files at a time. The plugin’s developer has a number of other free packages available for Sublime, including similar diff tools.

On the Sublime feature request forum I noticed a number of folks want the developer to include diff-merge features in Sublime by default. I already use other diff-merge tools specifically for merging conflicts in Git and the like, so that’s not exactly what I was looking for when I found this plugin. For those looking for that kind of functionality, some forum posters have recommended using existing TextMate packages since they are supporter by Sublime without modification. If your interested in learning more, this thread is a good place to start.

To install Glue Views or other Sublime packages on a Mac (the process and location is similar on Windows), simply navigate to /Users/<user account>/Library/Application Support/Sublime Text 2/Packages/User (Cmd + Shift + G in Finder). Copy the *.py package into that directory and Sublime will automatically detect it and compile. In the case of Glue Views, the developer included sample key bindings within the comments of the Python code. His didn’t work for me so I created my own:

[
   { "keys": ["alt+equals"], "command": "glue_views_add"},
   { "keys": ["alt+minus"], "command": "glue_views_remove"},
   { "keys": ["ctrl+alt+0"], "command": "glue_views_clear"}
]

Paste those into the Default (OSX).sublime-keymap file. If you want a separate menu for the plugin or all your plugins, create a file (in the same directory listed above) named Main.sublime-menu and put something similar to the following in it:

[
   {
      "caption": "Plugins",
      "mnemonic": "l",
      "id": "plugins",
      "children":
      [
         {
            "caption": "Glue",
            "mnemonic": "G",
            "id": "glue",
            "children":
            [
               { "command": "glue_views_add", "caption": "Add View", "mnemonic": "A" },
               { "command": "glue_views_remove", "caption": "Remove View", "mnemonic": "R" },
               { "command": "glue_views_clear", "caption": "Clear Views", "mnemonic": "C" }
            ]
         }
      ]
   }
]

That gives you a permanent Plugins menu to which you can add menus and commands for other plugins.

App of the Day: Sublime Text 2

Sublime Text 2 IconThere are a lot of different text/code editors out there. Some people swear by Coda ($99) or TextMate (~$50). Others prefer TextWrangler because it’s free and still has plenty of power to get the job done. If your a PC person, Notepad++ may be your weapon of choice. This post isn’t meant to be a review or comparison of the different text editors out there, but simply an introduction to another awesome alternative that I think is more unheard of than not.

Last summer a close friend referred me to Sublime Text 2. Before Sublime, I used TextWrangler, and I gotta say, the wrangler is great, but I just didn’t connect with it for some reason. I’ll admit, I didn’t really research all its functionality or install very many plugins, but I’ve heard great things. Regardless, Sublime resonated with me instantly.

Sublime is clean; no buttons all over the place. It’s got this awesome “1000 ft” distance view that can be used to scroll fast through code or find a section of your code through pattern recognition in the line structure. I’ve found it very helpful since I often use it to look through error stack traces, which are very pattern prone and are often thousands of lines long. Sublime has syntax highlighting for just about every language possible (much like other editors). You can control the preferences really easily too, changing just about any functionality. For example if you don’t like the “1000 ft view,” you can turn that off. Did I mention autocomplete? Yup…and while this isn’t language specific, it’s surprisingly smart and very helpful. Not nearly as powerful as autocomplete in Xcode, NetBeans or the like, but still a very useful feature.

These are just a few of the features that came to mind first and that I’ve found very helpful. Here’s a list of a few more (This comes straight from the documentation):

Usage

Customization

Miscellaneous

API

Oh and…Sublime is pretty platform agnostic. It’s available on Mac OS X, Linux and Windows (32- & 64-bit). You can also download “portable” versions for Windows that are self-contained so if you just want to try it out or keep it lite, you don’t have to worry about it installing extra garbage in your registry or system folders.

Sublime isn’t technically “free.” Here’s what the author has to say about that:

Sublime Text 2 may be downloaded and evaluated for free, however a license must be purchased for continued use. There is currently no enforced time limit for the evaluation.

So in other words, you can use it indefinitely without any limitations. I think it asks you to buy a license after every 25 saves or something? I didn’t find it very annoying personally. After I realized I really liked it, I just asked my company to buy me a license for work. The downside is that if you can’t work a deal like that then it costs $59 for one license.

Try it out and tell me what you think. What’s it missing? Would you switch?

*UPDATE* You should really check out Tuts+ for a list of very useful tips and tricks for Sublime Text 2. It will blow your mind if you don’t know about these features already.

Sublime Syntax Spell Checking

Syntax Spell Checking

Sublime Syntax Highlighting Javascript in HTML in PHP

Syntax Highlighting Javascript in HTML in PHP? No problem...

Sublime Multiple Selections

Make Multiple Selections

Sublime Find and Replace with Regex

Find and Replace with Regex

Sublime Edit Side-by-Side

Editing side-by-side