Skip to main content

keyboard - How can I find out where a key binding is coming from?


Related: Automating Esc [[ Esc formatting?


In previous versions of Mathematica, I could add these lines to my KeyTranslations.tr file, to map Ctrl+[ to [[:


Item[KeyEvent["8", Modifiers -> {Control}],
FrontEndExecute[{
FrontEnd`NotebookWrite[FrontEnd`InputNotebook[],
"\[LeftDoubleBracket]", After]
}]],
Item[KeyEvent["9", Modifiers -> {Control}],
FrontEndExecute[{

FrontEnd`NotebookWrite[FrontEnd`InputNotebook[],
"\[RightDoubleBracket]", After]
}]],

(I had to modify @rmrf's original key binding, because there are no [ and ] keys on a German keyboard. They're under the 8 and 9 keys, so I mapped those. I also had to comment out the other occurrence of KeyEvent["9", Modifiers -> {Control}, in the same file.)


In Mathematica 10, this works for Ctrl+8, but not for Ctrl+9, so I'm guessing Ctrl+9 is bound to something else.


Is there a way to find out where Ctrl+9 is mapped (so I can change it there)? It's not listed under tutorial/KeyboardShortcutListing, and I couldn't find it by grep'ing for KeyEvent["9" in the SystemFiles folder



Answer



@mfvonh's comment told me where to look: Apparently, the MenuKey in MenuSetup.tr also binds a key to a command. So Ctrl+9 was bound twice, in KeyTranslations.tr and again in MenuSetup.tr. Once I removed/changed both bindings, I could re-bind Ctrl+9 to ]].


Comments