Hello,
I am an vim user and I am used to the vim way of doing things. I started tinkering with emacs some time ago and enjoying it since because of the elisp. however I find the default keybinding kinda weird and it’s hard to get used to it. we can’t even vi" or ci" in emacs. also emacs doesn’t have inbuilt multi cursor support.
I really want to use emacs but these things are holding me back :(
I came from vi, and use Emacs keys. This was quite some time ago so there weren’t hoards of people telling me modal was superior and I should miss it, so I didn’t. I don’t think anything about it is more “kinda weird” than vi modal editing - just unfamiliar (as vi/vim once was), especially if you’re not familiar with standard readline cursor control as also used in OS X.
we can’t even vi" or ci" in emacs
You should perhaps explain what this is and why it’s essential. Funny to complain that you need a package for multiple cursors; people more often complain there’s too much built into Emacs by default. It’s easy to add though.
The long and the short of it is, if you persist in trying to use familiar vim workflows in Emacs, you’re swimming against the tide. More productive is to try to use Emacs in its own terms. Many vim->Emacs people persistently get hung up on basically “I find it awkward to use this vim workflow in Emacs”, and of course they do. It’s equally awkward to try to use Emacs workflows in vim.
I came into Emacs (only a year ago) with Vim experience as well, and it was a difficult transition for the reasons you describe, but I persisted due to the beauty and power of the rest of Emacs’ design and ecosystem.
I try to use the default bindings whenever possible, as I find going against the grain in Emacs leads to less efficiencies as packages stop cooperating with me or each other. Evil-mode is often criticized for this reason. It clobbers other bindings.
Understand that the default editing functions work best for lisps and their sexps. You will likely need to find third party packages to get that fluid feeling back for non-lisps. (Or implement them yourself!)
Check out
- change-inner which uses expand-region
- Maybe even the heavy-handed evil-mode. (But if you do, I’d recommend considering Meow as a less-invasive alternative)
- wgrep combined with the replace- commands really impressed me.