DEV Community

Discussion on: If you've recently switched code editors— How's it going so far?

Collapse
 
vonheikemen profile image
Heiker • Edited

Okay Ben, but I'm gonna tell you the whole story.

I started learning Vim in october because apparently I had nothing better to do. It started out like a nice hobby, every few days I would open up a file, tried to move things around, delete stuff, learn a new command or something and it was nice until I said "Guess it's time to make my own vimrc". Oh boy. It turns out that it was way more entertaining than I was expecting.

The plugin hunting didn't last very long. I found a post about Vim that had a phrase that stuck with me "let sublime be sublime, let Vim be Vim", that was enough to convince me to not try and make Vim behave like Sublime text. But there was still one thing I wanted and that was a good fuzzy finder, and my friend google had the answer for that, fzf. FZF it's best thing ever, it's the only plugin that I would consider essential (even though Vim has a search feature already).

The real time sink was the keymap. It was so dificult to "get it right". I spent an afternoon (on a week day) browsing in github repositories looking for vimrc configs. I'm really happy with the "final result".

The next stage of the journey was trying to find a way of using Vim outside of a terminal. I tried a few Neovim frontends and other editors emulation. In the Neovim GUI department I gotta say that I really liked Onivim and nvim-gtk.

  • What I liked about Onivim was the integration with language servers, it enables features like goto definition and autocomplete like in VSCode. It consumes like half of the resources that VSCode requires it is still an electron app that takes quite a bit of RAM.

  • Nvim-gtk is my favorite way of using Neovim, is basically like a terminal except that it provides a few widgets that I appreciate like a file explorer, "real tabs" with a closing button, a plugin manager menu and other stuff. It's written in Rust so is cross-platform, and fast. The only thing that is a bit annoying is the fact that I can't make the cursor stop blinking.

And so now that I have a Vim setup that makes me happy I've decided to go back to Sublime text and see if can get some of that modal editing that I liked about Vim. So far I have tried the NeoVintageous plugin (If anyone wants to learn vim but don't want to use it yet that plugin is a good place to start). I have to say that is a good vim mode, but I stopped using it because it was missing some features and a few others do not behave like I would expect, is like that off by one error that you just can't fix.

Since modal editing is still posible within Sublime text I'm making my own keymap settings (I keep them here) in the form of a package so I can disable everything when I don't need it. The keymap is inspired by Vim but instead of trying to be exactly like Vim I remap Sublime's built-in commands to get a more consistent behavior. I don't get the composable commands that Vim has but I still get a little bit of the modal editing that I wanted.