How do I set a default language (input source) for an application?
A workaround I'm using is to make Esc always switch back to English within MacVim. There is a very nice app called KeyRemap4MacBook, and you can use something like below as its private.xml
configuration to let MacVim behave in such way. MacVim might start, or be in a different input source, but you can get it right with a single keystroke, which must be pretty familiar to your fingers already. Moreover, this is extremely helpful if you're switching back and forth from input mode to/from normal mode in MacVim, entering and editing non-English text.
<root>
<item>
<name>In Vim, Make Escape key also Switch to English IM</name>
<identifier>private.vim_esc_also_switches_to_english_inputmode</identifier>
<only>VI</only>
<autogen>__KeyToKey__ KeyCode::ESCAPE,
<!----> KeyCode::ESCAPE,KeyCode::VK_CHANGE_INPUTMODE_ENGLISH </autogen>
</item>
</root>
See also: my private.xml in use.
There should be an option in the settings pane for input where you can select if you want the same global or on application basis.
Edit: It only have "Use same one in all documents" and "Allow a different one for each document"
Not sure that works for applications.