Sunday, February 12, 2012

Sublime Text 2 - I'm loving it!

Leaving Notepad++ was not easy. The recommendation for TextMate was loud and clear. But it didn't impress me and the search continued. There came this new kid on the block - Sublime Text 2. I must say it's really Sublime. If you haven't tried yet, download it now - Not just mac users, but my ubuntu friends are also leaving their "vi" and gEdit for Sublime Text 2.

My favorite features -

  • multiple cursors - it's incredibly useful!
  • column select
  • crazy fast file switching - include 'Go to anything' search (cmd + p)
  • context specific search and replace
  • side by side multi-pane editing (like :vsp in vim)
  • auto completion 
  • bookmarks (like in vim)
  • distraction free mode
  • Snippet support 
  • Zen coding support 

And there is a package manager which makes installing new packages a piece of cake.

Terminal command to open up Sublime Text 2
It's simple, just create s symlink and add it to your PATH
ln -s "/Applications/Sublime Text" ~/bin/subl
Edit your ~/.bashrc or ~/.bash_profile to add this -
export PATH

Install package manager-

Open Sublime text 2, you can use subl command in your Terminal now.
Open the console by clicking View -> Show Console  and paste this in the console and hit enter. import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen(''+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'
Restart Sublime Text 2 to complete the installation process.
Presse cmd + shift + p to access the command pallet and then type 'Install packages" and hit Enter.
This will open up a list of all available packages. Select the package from the list and Enter. That's it. It will download the package and install it for you.

Here is the list -

A very quick way to create new folders and file - cmd + alt + n -
Happy Coding!

Print Screen in Mac

When I opened my macbook, the first thing I wanted to do was to take a screenshot and email it to my friend. But there is no Print Screen? First Google result - cmd + shift + 3. Can it be more obscure? 
Sure, it has lot of good functionality built in but a dedicated key or fn+something is more user friendly, isn't it?

Here are all options - 
  • Cmd + shift + 3 -- Takes screenshot of the entire screen and saves it as a .png on the desktop
  • Cmd + shift + 4 -- Lets you select an area and then saves it as a .png on the desktop
  • Cmd + shift + 4 + space -- Lets you take a screenshot of just one window. and saves it as a .png on the desktop

To copy the contents to the clipboard, add control key with above combinations. e.g 
  • Cmd + +ctrl + shift + 3 -- Takes screenshot of the entire screen and saves it to the clipboard
Command Line -
For Terminal lovers, screencapture command can be used and it's especially useful for automated scripts. 
$ screencapture -iW ~/Desktop/screen.jpg

File Format 
Mac OX X 10.4 and later versions use .png as a default file format to save the screenshot but this can be changed by using the below command inside Terminal

$ defaults write type image_format
$ killall SystemUIServer

where image_format can be jpg, tiff, pdf, png, bmp or pict. The second command causes SystemUIServer to restart so that the change takes effect immediately. 

There is also a native app - 
If you don't like so many keys for just a screenshot, you can also use an app called Grab, bundled by Apple by default, to grab a screenshot and view it using Preview application

So much for a simple print-screen!

Moom - Snap for Mac

If you miss the Snap feature of Windows 7 where you can quickly resize any window to occupy half of your screen space, here is a must have app from ManyTricks. It's called Moom -

It does a fantastic job of resizing and aligning multiple windows with simple mouse control. It also has keyboard mappings if you like. I find it extremely useful especially while working with multiple Terminal windows, and also while working on my Website.