Switching from Vim was a no-brainer. I was on WSL 1, and the Alt/Meta key support was horrendous at the time. Neovim supported it perfectly.
Years later Neovim adopts Lua, I went back and forth between Emacs and Neovim for several months. Neovim stuck, because for some reason it just works. Lua is a little easier to learn and write (before I find the time to sit down and read the elisp manual properly, appreciating the lisp-ness), my Neovim setup had a satisfactory number of features whilst having minimum moving parts. It became easier to maintain. As my current daily driver I don’t need to touch my config for months and it will work.
I also tried helix several weeks ago, it’s great, but it doesn’t support custom snippets and templates, among other things that were essential to the development for some of my projects.
I am not convinced Neovim is best for me, I miss Emacs from time to time. It’s just what I’ve sticked with and I’m happy with it for now.
Been using some sort of vi for 20-some years now and I’m still not convinced. I suspect it’s got something to do with my configuration. I’ll need to tinker a bit. I think I’ll give it another 20 years then I’ll let you know.
I installed LazyVim a few days ago and like it so far for smaller changes.
Anyways i can’t use it for serious work due to missing features or i havent found them yet. I couldnt find out where to find plugins, how to install and configure them, its overwhelming.
I need full, in file, text search for the current directory, multi word editing, move lines up and down. Sure there are key combinations, but they all seems a bit long compared to VS Code.
Is there a slack for noobs like me or a Udemy course?
I wouldn’t expect that you could go from zero experience with Neovim/Vim to more efficient than the editor you’ve been using extensively in less than a month. most of the people that responded here had been using Vim prior to switching. The one that had no prior Vim experience took half a month to get the basics down and be comparable with their prior editor (VScode).
Everything you’re after is available, but trying to learn it all at once can be overwhelming as you’ve been experiencing.
So one step at a time, I suggest that you:
- Take less than an hour to learn about Lua Text Overview | Video
- Reinstall a fresh stable version of NeoVim and if you haven’t already followed the tutorial, follow it.
- Install ripgrep for full, in file, text search for the current (or specified) directory.
- Install kickstart.nvim and watch the kickstart.nvim walkthrough video to learn how configuration and plugins work in Neovim. (It also includes a Fuzzy Finder [fzf] that works with ripgrep inside of NeoVim.)
- Practice Vim Motions so they become second nature to you. Watch the first 5 videos of The Primeagen’s Vim Video Playlist to see the fundamental movements beyond what’s in the tutorial. You could use a VSCode extension that replicates Vim Modal Editing with Vim Keybindings to get used to the Vim Motions while you’re still using VSCode.
- Get familiar with the Neovim User Documentation which han be accessed and navigated with Vim Motions by typing
:help
while in Normal mode in Neovim - Watch videos on multiword/mulitline editing options with Neovim (Part 1) | (Part 2)
- Use other resources to learn more about Neovim and figure out what you want to do with it. alpha2phi has a series of articles on Medium but there are many many more. Including TypeCraft on YouTube
.
The best chat beginner community for Neovim that I know of is in The Odin Project Discord. There’s a Neovim thread in the #odin-general channel there. (Bonus, while you’re in the Discord you can help out others trying to learn web development.)
The point is to find your own way by learning from others, not to simply mimic others. Although up front, mimicing what others are doing is a good way to get started.
Take your time with all of this, there’s no rush.
Quick Update: Your Guide was a great start and i’m using wezterm, tmux and Neovim (kickstart-modular with my adjustments) in production. My biggest pain point currently is ‘d’ overrides my last yank. My favorite command is ‘cinq’
That awesome!
There are always many ways to deal with workflow annoyances you run into. Most people go looking for plugins or write a plugin or remap some keybindings, but many forget to read the manual to look for builtin solutions. In the case of using d
, you can assign the deleted text to a register other than the default register for yank/delete commands.
dd
will delete a line and send it to register "
"xdd
will delete a line and send it to register x
p
will put the text from register "
after the cursor
"xp
will put the text from register x
after the cursor
Use any lowercase letter for a register. There’s always more beneath the surface of simple vim features.
Relevant sections of the User Manual: