I’m a big fan of VIM modal editing and keeping keyboard shortcuts as close to the home row as possible. This philosophy allows fluid text editing and staying in the “programming flow state”.
Remapping the Caps Lock key to Control and Escape is a big part of this workflow. Pressing and releasing sends the Escape key, while pressing and holding emulates the Control Key.
In macOS, I’d been using Karabiner Elements to enable this remapping, however with macOS Big Sur I could no longer get the configuration to work. This was a serious annoyance, since the VIM shortcuts are burned into my fingertips.
Enter HammerSpoon! Using the ControlEscape plugin, I am now back in remapping bliss. Below are the System Preference settings required to make this setup work.
If you use multiple keyboards with your mac, for example an Apple Magic bluetooth keyboard, the modifier keys are configured individually for each one – so make sure the correct keyboard is chosen in the “Select keyboard” dropdown:
When I first discovered Vim I wasted a lot of time trying to bend it backwards into a traditional editor. The below quote sums it up perfectly:
Vim is not TextMate or whatever other editor you have used before. There is no way to transfer all your old habits seamlessly, point blank.
Instead of wasting your time trying to make Vim and your terminal into something that it’s not and can’t be you should learn how to use and customize Vim wisely. All your Cmd+Shift+Ctrl+Alt combos won’t lead you anywhere. Especially in a terminal where Alt is often problematic and Cmd unusable.
Consider using leader(:help leader):
it’s portable on every platform
it’s less prone to conflicts with your OS or terminal emulator
Adding gobs of plugins instead of learning Vim’s native functionality is another common trap, so I maintain a secondary lightweight Vim config called Ninjarc with minimal plugins to keep me sharp.
Finally, Tim Pope’s philosophy of favouring commands over leader key combos yields a more cohesive configuration. I’m experimenting with Spacemacs-style command mnemonics in my Aetherwolf Vim config. For example, instead of binding Leader+T to open NerdTree, :tn is used (Toggle NerdTree). This allows :tt for Toggle Tagbar and so on – a nice memorable taxonomy rather than a flat multitude of somewhat arbitrary leader combos.
I might eventually move this into Denite menus à la SpaceVim, but for now I’m digging the simplicity of using :ex commands.
So it looks like MacOS Sierra broke pbcopy/pbpaste for tmux. This manifests as clipboard errors when using netrw/vinegar in neovim under tmux. (Dunno why netrw is writing to the clipboard but anyways).
The solution is to use Homebrew to reinstall a patched version of reattach-to-user-namespace: