Biggest downside is using someone else's keyboard. I've grown a nasty habit of hitting escape instinctually, every time I finish typing something. I turn on their caps lock so regularly! Still worth it though
Also, as a VIM user, I only have to use Alt when I’m dealing with GUI apps, which is definitely common, but a time when I don’t mind moving my hands around.
So for me, Esc is Alt. Alt is caps lock. And of course caps lock is Esc.
And I swap Super key and Control, since the Super key is easier to press with my palm on my ergonomic keyboard. And Ctrl does have a lot of uses in Vim.
I also map the Windows Menu key (not the Super key, but the other one which is used for showing context menus) To underscore. That helps me type C identifiers with multiple words in them. This one remapping is a huge benefit, almost as important as mapping caps lock to Esc.
ctrl-[ (for right hand) or ctr-3 (left hand, thanks teddyh) => escape
ctrl-i => tab
ctrl-h => backspace
ctrl-m => return
ctrl-w => delete prev word
ctrl-u => clear line
ctrl-o => cmd mode for 1 cmd
...and many, many more, including all the completion options.
https://github.com/alols/xcape (for linux)
https://apple.stackexchange.com/questions/132564/how-can-i-r... (for macOS)
https://github.com/ililim/dual-key-remap (for windows)
(This is a blessing and a curse. You never have to worry about OS-level hacks to make caps lock a control key, but on the other hand, there is no way in the USB HID protocol to say "send an !". Rather, the keyboard has to synthesize a shift + 1. And what character that actually maps to depends on your OS, because of course it does.)
I tried it because I was having a bunch of wrist pain. The actual solution to my wrist pain was easy: Don't code on a laptop keyboard. The ergonomics are terrible.
By far the most irritating thing about others' keyboards is they have not disabled it yet. Second most is that Ctrl isn't there instead.
I keep a caps lock on my programmable keyboard for this (Fn+K).
I also like SQL to be formatted with capital letters for keywords.
type_a_constant ctrl-[ vawU
That sounds more than it is. Really I just touch type it without thinking consciously about it.Probably don’t even need visual mode that’s just how I work.