How can I set keys to be remapped for one specific program in Linux? (More specifically Caps Lock -> Escape for gVim. I hit it accidentally too much to remap it in everything).
Check Vim's wiki on wikia.com.
If you want to completely swap the Caps Lock and Escape keys, you have to replace the "Lock" on Caps Lock. Drop this file in your home directory:
! Swap caps lock and escape remove Lock = Caps_Lock keysym Escape = Caps_Lock keysym Caps_Lock = Escape add Lock = Caps_Lock
and call it ".speedswapper". Then open a terminal and type
$ xmodmap .speedswapper
The swapping lasts for the duration of the X session, so you can put it in a .xinitrc or similar startup file.
There are some other interesting alternative ESC mappings as well.
you can write a simple bash script which can run the above mentioned solution whenever you run vim and remove the file after you close vlc.
Autokey allows you to remap keys with window filters, and it's available in most distributions' repositories. As a bonus you can even map scripts to certain keypresses, it's pretty powerful. https://code.google.com/p/autokey/