I bought keyboard SteelSeries Apex 350 thinking that I can somehow bind extra keys with vim. I am looking for answers in the Internet regarding this subject but I am not lucky so far. Have anyone tried to use gaming extra keys in vim?

  • I didn't get around to drafting a proper answer to this, but I think the solution is to use SSE3 engine (which is available from the manufacturer's website steelseries.com/downloads) to map the keys, either to something that you can then handle in Vim, or to macros that actually type out Vim commands. Here's a video showing how to do so youtu.be/yZGHa5bf3WU. It's for a different keyboard but according to steelseries.com it uses the same configuration software.
    – Rich
    Jun 26 '17 at 14:19
  • It does not solves the issue. The @laktak helped helped me to figure out what is happening (please refer to his comment). Jun 27 '17 at 8:53
  • Huh. From what I've read, you should be able to remap the keys to perform arbitrary sequences of keystrokes. Just out of interest, how does it fail? Does the SSE3 engine not work as advertised?
    – Rich
    Jun 27 '17 at 8:56

Because most terminals only support a limited set of key codes you need to solve your issue in two steps:

  • Use Karabiner/Elements (Mac), Autohotkey (Windows), xkb/Autokey (Linux) or something similar to map the key to a combination that is supported in your terminal (like F1-F12)
  • Map that key (e.g. F1) in Vim

Karabiner/Autohotkey let you set the mapping only for the terminal, not sure how to do that with Linux.


I assume you're talking about the special keys on the left-hand side? enter image description here Vim only sees ASCII text as input. This means that when you press Shift+s, Vim only sees S not the two individual keys. This is why you can't use a naked Shift as a binding. That being said, if your new keys produce some kind of ASCII output you should be able to use them as bindings by doing the following:

noremapCtrlv{your key} {your binding}

Place the resulting line in your vimrc.

If on the other hand doing this doesn't produce ASCII output, I don't think there is any way for Vim to access them.

See :help i_CTRL-V for more info on how Ctrlv works.

  • "Vim only sees ASCII text as input" <- this isn't correct, and could do with rephrasing. You can type non-ASCII text into Vim, and you can also use non-ASCII in the {lhs} of a mapping: e.g. :nnoremap é x works fine.
    – Rich
    Jun 19 '17 at 16:00
  • Sorry, you're right. I was thinking that é was under the ASCII standard but it's not. What's a better way to say that (because Vim doesn't take all Unicode characters IIRC)?
    – Tumbler41
    Jun 19 '17 at 16:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.