To all evil-mode users, how do you work with vterm?
As a long time Vimmer, I have recently started using Emacs out of sheer curiosity. I chose Doom Emacs as it has evil-mode enabled by default, and do not want to dive down the rabbit hole of configuring the editor from scratch (at least, not yet!).
After installing and enabling libvterm in Emacs, I am having a frustrating experience. I configured ZSH shell to use vi-mode keybindings which interferes with evil-mode whenever I press Esc or C-[.
After having searched a little, I came across a workaround to disable evil-mode when in vterm. But it is still not a smooth experience. For instance, when switching between buffers (C-w C-w).
I would like to know how others in the community tackled this problem. Is there a better solution to this problem? Or have you made peace with the aforementioned workaround? Or have you stopped using vterm entirely?
Not really an answer to your question, but personally I resolve issues relating to vi keys in Emacs by just knowing the Emacs bindings as well. When I came back to Emacs, I took a month to just use the vanilla bindings. It was painful for about a week, but boy did it pay off; not just for using Emacs (especially for niche packages that don’t have evil mode bindings), but also for other GNU programs like bash and midnight commander and such (as well as, as you mentioned, the defaults on zoomer-shell).
@AusatKeyboardPremi
It's a mental burden to keep track of modes. That's why people invented modifier keys in the first place. But I admit after a while there can be too much shortcuts and then something needs to be done about it. I recently transferred my less-often used shortcuts into hydras so I don't need to remember them (and hydras resemble modal operations)
In Emacs, there are no modes the user needs to be aware of when typing where the cursor is.
My basic approach is: Esc works like in normal evil-mode, and takes me into vterm-copy-mode as well. Without doing that, I have C-w C-w remapped to move to another window, so I can switch to another window for all the rest of my keybindings. And I have C-Esc mapped to send Esc into the terminal itself.