having to leave insert mode, move then re-enter insert mode is incredibly tedious
I imagine most of the tedious part is leaving insert mode, which implies reaching for the Esc key. Personally, I have my CapsLock mapped to Esc (with setxkbmap -option caps:escape
), but there are multiple alternatives, like mapping jj to leaving insert mode, etc.
I actually switch more than necessary, and don't see it as a hassle. It's because I'm thinking of a series of actions and my fingers just translate. Let me give you an example. Let's say that I want to
- call
foo
- pass it an object
- prepare to fill that object in a new line
I don't foo({
Enter})
Capsko
Tab.
Instead I do:
foo()
Caps (call foo)i{}
Caps (pass it an object)i
EnterCaps (in a new line ...)ko
Tab (prepare to fill it)
Well, that's a bit dishonest in that a line break between {}
is so common and the Enter key is touching the }
key, so I actually already have the muscle memory to type {
Enter}
. However, I would do it as I listed above if I needed different braces like (<>)
.
Anyways, I think I don't see it as a hassle because:
- I've made it easier to exit insert mode, by using Caps
- Typing like that allows me to take advantage that opening and closing braces of all types are right next to each other on a QWERTY keyboard. This also allows me to hit
"
twice in succession when typing strings. It limits how many times I need to move from typing words to "weird" keys. - This is the big one for me: It better maps editing actions I have in mind to key sequences I need to type. It's like it makes typing more composable. I think this allows me to use muscle memory better when editing text.
* I use ko
because O
immediately after Esc
corresponds to a terminal escape sequence, so weird stuff happens.