>How can we find out what keys can be mapped and which can't?
For ViEmu mappings, until the :map<CR> command gets implemented I suspect that you can't. Hopefully, when that is implemented it will at least list all mappings done by the user and ViEmu itself. I would venture that it probably would not, however, show those mappings due to the underlying tool (e.g. Visual Studio, SQL Management Studio) since these might not be easy to determine programmatically and besides, the RHS would be something foreign to ViEmu.
In both Visual Studio and SQL Management studio, you can at least test a keymapping by choosing Tools->Options and then selecting Keyboard from the tree-list in the resulting dialog or via the special "Keyboard" button in the dialog from Tools->Customize (the button just takes you to the aforementioned tree-list item). In SQL Management studio, you will just see a list of all the key mappings, which is generally fairly short. In Visual Studio, however, I think you pretty much have to try out your proposed mapping on an existing VS command (it doesn't matter which one -- just be careful not to select "Assign" when you are doing this). If you enter a mapping for a command which is already mapped to something else, the current mapping will be displayed.
Years ago, when Microsoft Help actually was a help, there was a Keyboard item in the help menu for Visual Studio which, when selected, would give you a list of all of the current Keyboard mappings with a short description of the command to which each was mapped. If there is anything close to that now it is well-hidden because I have looked.
- Les