Sublime Text is a Bodybagger
3 Feb 2013
Call me a mouse-atheist. I love vim; it lets me do everything on the keyboard. In the time it takes for one to reach for their mouse, highlight a line to copy and paste, and Ctrl+C/Ctrl+V to copy in Word, I could type “yyp” in vim.
My whole desktop is vimified: workspace and window management hotkeys, Vimperator on Firefox, Terminator hotkeys, and vim itself. vim is good for text editing, but it ain’t good at some things that I have simply put up with for years. Two days ago, I tried out Sublime Text, and today I bought it. Here are five reasons why Sublime Text is just Frosted Flakes great.
##5. vim compatability!
Horray for filler items in list-based posts! Seriously, to replace vim, it must have vim. Sublime Text comes with Vintage mode that has most vim support. It combines vim’s command mode with Sublime Text’s. With a few tweaks, I was able to make it just like vim as far as I could tell, minus some :commands.
To enable it, from your preferences, change
Some tweaks I had to make were having ctrl+f/ctrl+b going pageup/pagedown instead of search/building, making “u” be undo and not repeat/undo, and setting ctrl+r to be redo. How did I do that you say? Glance 100 pixels below.
##4. Powerful Keybindings in JSON and Plugins in Python
Set and overwrite keybindings for anything you want. The default settings openly lists all the keybindings, but you can write stronger ones. It is good practice to overwrite keybindings and preferences in your local Sublime Text configs.
It satisfies all of my idiosyncratic keybinding needs such as alt+hjkl to navigate between panes, typing “jj” in insert mode exits insert mode, or hitting ctrl+shift+tab throwing in a pdb breakpoint.
What’s awesome is that these configs and plugins are hot-loaded. Modifying a config or adding a plugin automatically takes effect on all of your open buffers.
##3. Package Manager and the More Centralized Community
Install the PackageControl plugin with a one-line command into the console, and you can install all the good Sublime Text plugins within Sublime Text.
My current plugin loadout:
- PackageControl: so meta
- Githubinator: opens the GitHub page of the current file
- Git: git integration into the command palette and console
- Emmett: can expand css selectors into HTML syntax
- Origami: enhance pane splitting and allows me to set shortcuts to navigate between them
- Theme-Soda: popular Sublime Text theme
- SidebarEnhancements: enhances the sidebar to allow all them file operations on right-click
- SublimeLinter: all-in-one code linter for popular languages
- SublimeCodeIntel: can jump to symbol definitions, give function tooltips, and autocomplete code within a whole project
- LESS: LESS syntax
- SCSS: SCSS syntax
##2. Project Sessions
Close Sublime Text and open it again. All of your buffers and panes will be just as you left it. For multiple windows, they can be restored if you saved the project. Granted vim has .swp files, but how many times have I asked vim to “edit anyways”? And Terminator doesn’t remember the pane layouts and what exactly was on each pane when you closed it.
Now I don’t mind my Ubuntu NVIDIA drivers crashing all the time as much.
##1. Ctrl+P - GotoAnything
An intelligent autocomplete search that lets you pull up any file within your project by specifying just a few letters. It is like Synapse which autocompletes programs and files on your computer, or Firefox’s Awesomebar which can search through content of your browser history to pull navigation bar suggestions. It just knows what you want.