I recently switched from using Vim in terminal to MacVim. The move had a lot to do with the fact that I use GUIs with git and other stuff too. MacVim loaded my .vimrc automatically, which was great, but I wanted a slightly different config for the GUI version of Vim. So here’s a simple trick that allows you to apply a specific configuration for MacVim and another for Vim in shell. Make a copy of .vimrc and name it .vimrc_shell. Then create a file named .vimrc_macvim.
$ cp .vimrc .vimrc_shell && touch .vimrc_macvim
Erase the contents of .vimrc
$ > .vimrc
And add the following lines to it
if has("gui_macvim") source ~/.vimrc_macvim else source ~/.vimrc_shell endif
That’s it. If .vimrc is loaded from MacVim, it uses .vimrc_macvim as a config. If Vim is opened in a shell, it uses .vimrc_shell as a config.