Thursday, January 8, 2009

4 useful things - try this at home.

tig: a curses interface for git. It gives you a mutt-like interface of the git repository and provides you with the ability to define custom key commands, etc. Really good for reviewing patches or lists of patches before pushing them, and even better for branch work. Example: git checkout mybranch; tig master. Hitting C now will cherry-pick the currently selected patch onto the current branch. I have to admit, that only since I started using tig I got a reasonably good handle on my branches. Thanks to Kristian Høgsberg for showing me tig.



cscope_maps: a cscope pluging for vim. It provides a significant advantage over the ctags support as it doesn't require the use of :cnext anymore. Instead, it lists all tags in a list and you can jump straight to them. It also gives you the "who's using this symbol" cscope search on "Ctrl+Space, s".




taglist: another plugin for vim. After hitting :Tlist, it lists the symbols defined in the current file (and also from previous buffers, though I find this sometimes annoying). Great for getting an overview on a new code base, or searching for symbols. The use of Tlist goes down the more familiar I become with a file, but it's still invaluable after a few years of looking at the same few files.



Nostalgy: a Thunderbird plugin that provides keyboard shortcuts to move emails around. Hit S and type the mailbox, including autocompletion, etc. Sorry, no screenshots (I use TB for work email and I'm too lazy to blur out), but there's screenshots at the URL above anyway.

Aside from the usual stuff these four have become must-haves to me.

edit: fix cscope_maps link, thanks to jonathan.

4 comments:

Jonathan said...
This comment has been removed by the author.
daniels said...

tig = awesomesauce. cheers!

Jonathan said...

cscope_vim_tutorial link is (minorly) out of whack

davrieb said...

Thanks for pointing those out.

I already knew the vim plugins, but they're definitely worth noting.

And tig is a really good addition to the already great experience of using git and all the tools surrounding it.