There doesn't seem to be one place like windows registry classes subclass or the file associations application where you can set the application to open a file of certain extension in Mac OS X.
If you select one file and click open with and select an App, it's associated to open that file only even if you select "Always open with". It doesn't set the open with app association for all files with that extension.
Easiest way (or is it the only way?) to do that seems to be this way:
Open File Info of a file of that extension. For e.g., to set all .sh to open in macvim, select any .sh file in Finder. Then Click Command I or right click -> File Info.
In the Open With section, select the app to open the file with
And importantly select the option "Change All". That's it - This should do.