I use the shift keys a lot and it is an unnecessary strain on the pinky. The `enter` and `backspace` functionalities are conveniently located under a dominant finger (ctrl-m and ctrl-h). Similarly: > Is there a way to map the shift function to a dominant finger? But in the vim spirit I want to get this functionality with a key combination rather than finger acrobatics; e.g., lets use the extremely rare key combination `fd` (in insert mode!). For the alphanumerical keys one could dump an entire list of imaps: `fd1 !`, `fd2 @`, ..., `fda A` etc. into vimrc. I'm hoping there is a better way. > Ideally, `fd` would be mapped to a "sticky shift" that waits for a one letter input, shifts it, then turns off the sticky shift. Is this possible? Many thanks! ## Post mortem ## Rich has a function down below which can be modified to have the complete effect. Last night someone wrote a neat solution and then erased it so I will include it here: > `imap <expr> fd nr2char(getchar()-32)` This does the trick if all you want to capitalize letters. Otherwise it seems like a good way to do function calls. Another good suggestion in the comments below is modifying the keyboard at the firmware level using [this](https://github.com/tmk/tmk_keyboard). Thanks for the help everyone!