levlaz

Notes on Mastering Sublime Text

2016-08-06 Tags: books

I picked up Mastering Sublime Text while working through the first section of the Rails Series on Coursera. First, its nice to sometimes switch up your text editors to see what you are missing. Second, Sublime Text has a very small learning curve and I never took the time to learn about some of the more advanced features so this was a decent use of my time. Third, I really want to write a CircleCI plugin for Sublime Text similar to the ones that exist for atom and Visual Studio Code, and this book has a great section that goes into detail about what it takes to write a plugin.

Things that I always loved about Sublime Text

  1. Multi-line Selection
  2. Dead Simple Multi File Find and Replace
  3. Speed -- Go try to open a 10K line log file in Atom. I'll wait.
  4. Package Control package manager was one of the first of its class for GUI editors. Go try to install any plugin in Eclipse. I'll wait.
  5. Distraction Free Mode -- Perfect for writing prose

Things that I wish Sublime Text had after using Atom

  1. Color coded indication about git status. There seems to be a feature request for this, but I am not 100% sure of the reasoning on why this is so challenging to implement.
  2. File Type Icons; I don't know why but this is one of my favorite atom plugins and it makes quickly finding the files that you are looking for a breeze.
  3. Pigments plugin - another one of my favorites. ST has a similar plugin but its not as good and it also underlines the font which can be a big hard to read.
  4. Being able to drag and drop files around in the sidebar. This comes in handy quite a bit.
  5. Better overall git support, I actually think that VS Code has some of the best git integration out there, followed by magit and vim fugitive.

Things I learned

Searching

  1. Sublime text has incremental search. This was one of my favorite features of emacs. Command + I opens it up, and you can go to the next result by repeating Command + I.
  2. When searching for stuff, if you double click on the result it takes you directly to the file. This is such an awesome feature.
  3. Go to anything with Command + P, holy crap is this powerful.

Editing

  1. This did not come directly from the book, but I learned this cool trick while working on this post. If you highlight some words you can then wrap them in braces. This is super handy when adding links in markdown.
  2. Snippets; I have triggered snippets accidentally in the past, but learning more about how they work and how to make custom ones was very useful.
  3. Vintage mode makes sublime behave like vi. Pretty cool!

Plugins

  1. SublimeCodeIntel - one of the best features of VS Code is IntelliSense, this comes close and is a super powerful code-completion plugin.
  2. TrailingSpaces - Linus Torvalds tells developers who use any editor that does not automatically strip trailing white space to get a real editor. This is built into Sublime Text, but this plugin adds some additional features to make this even better.

Sublime Text Internals

  1. Sublime has a bunch of useful Environment Variables that can be used when developing snippets and plugins.
  2. Visual Cues, I mentioned earlier that I really like some of the visual cues that Atom offers. There are a couple built in settings like making folders bold and highlighting modified tabs that make things easier to look at.

Testing

  1. The biggest difference between mode IDE's and Text Editors is build in testing and building functionality. Although testing is not built into Sublime Text, the book did an excellent job talking about several plugins that make testing PHP, Python, and Ruby a breeze. I found the RubyTest package to be the most useful since it has built in support for Test::Unit, Rspec, and Cucumber.
  2. There are also a ton of great plugins for debugging from within Sublime Text.

Plugin Development

  1. This was my primary reason for getting this book since I want to write a CircleCI Plugin that shows the status of your most recent build in the window. I was not disappointed, the book did a great job discussing what it takes to start, develop, and publish a plugin.

Errata

  1. SublimeLinter; the book mentions this plugin and says that it has a bunch of linters build in, this is no longer the case. It's still a very useful tool, it just requires a bit of configuration to get the most value out of it.
  2. The book tells you to add trim_trailing_white_space_on_save to your user settings if you have installed the TrailingSpaces packages. This did not work for me on Sublime Text 3. Instead I needed to add this setting under the trailing_spaces.sublime-settings file with the new key called"trailing_spaces_trim_on_save"

Parting Thoughts

Mastering Sublime Text{.add-link} is a quick read, full of useful information for new and experienced users of Sublime Text. I would highly recommend it for anyone who uses Sublime to serve as a deep dive introduction and as a handy reference manual.