neovim. I’ve been using vim or neovim for >25 years and it’s changed how my mind works to the point that other editors are awkward. I can also reliably find some form of vi on any machine I log onto and, while I am not necessarily writing Rust on a random machine at work, having to learn just one program for editing is nice.
+1 for Neovim I love that thing.
If anyone’s curious/interested in it… while the stock editor is pretty “basic” (it can still do a ton of stuff!), the plugin ecosystem (or whatever it’s called) is really nice. You can use “pre-built” ones like LunarVim, LazyVim, or NvChad (I’ve used this one, it aims to be highly customisable and it’s pretty nice). There are probably many others.
You might want to get used to the key binds and such before doing any of that though ahahah. Once you open it, if you type
:Tutor
and press enter it should bring you to a little tutor program for explaining the basics.I do however highly encourage you to try making your own config! You could write it in vimscript, but Neovim has full support for Lua. You can even have multiple different init files for it. (You can select them with the
-u
flag when runningnvim
. Like:nvim -u path/to/my/config_file.lua
). I liked ThePrimeagen’s video about making a config from scratch (personally I really like his energy and personality, but he does sometimes yell and stuff (i don’t think there’s much of this in this video) so it might not appeal to everyone). I haven’t really looked at any other resources (besides the built-in:help lua-guide
and random searches), but I’m sure there’s a ton out there.It’s really fun :DD
I can’t really comment on the preconfigured packages; I learned way back in the 90s before things like that existed. Definitely recommend learning the editor before going crazy with customization, though, and the tutor is also where I started. There is an enormity of config options, as you’d expect for software that has almost 50 years of history, so just start with what you want / fixing what annoys you.
It’s nice to have everything ready for you in Lunar, Lazy, Chad Vim, but it is honestly too much for any newbie to take at once. For anyone starting with vim/neovim best advice is to start with vanilla experience: no configs, no plugins and just learn basics. Then search for fixes to major annoyances, and when you’re comfortable with keybindings look for plugins to extend features. You’ll quickly realize how small is number of customizations required to be fast and productive in [Neo]Vim.
I’m ignorant and putter around with WebStorm as an IDE, but I’d like to ditch it. Does neovim have similar functionality? I thought it was more of a text editor.
I have stayed as far as I can from web development for about 10 years so I can’t answer that question.
You’re wise. The entire JavaScript ecosystem is really great and hot garbage at the same time.
I am not a hardcore programmer, but anytime I code anything, I use vscodium. It is VScode without the microsoft telemetry.
That sounds great! Does it support the plugins as well?
It has the same plugin system, but they pull from Open VSX rather than Microsoft’s extension marketplace. If there’s an extension not available there, you can still download it from Microsoft’s marketplace and then add it manually.
It’s also possible to swap out the extension registry entirely and still use Microsoft’s marketplace instead of Open VSX in VSCodium.
VsCode because I’m basic like that :^)
I love using helix. Not really an IDE, but since it has built-in support for language servers like rust-analyzer, it can do everything I need.
I’m just waiting for the inbuilt file explorer to stabilise. The only thing I miss is easy file navigation. The fuzzy searcher just isn’t what I want most of the time.
I see. I used to use things like nerdtree in vim, but when switching to helix I just accepted the fuzzy file search, and now I don’t see why I would ever need anything else to open files.
No one has said Emacs yet, I was a long time vim/neovim user but switched a couple of years ago, still learning rust but it’s been pretty comfy so far, plus I can wash my dishes in it.
I use Emacs for just about everythinhg, including Rust dev. It’s fantastic!
Emacs is the best vim implementation.
Emacs is a great operating system but lacks a good text editor
IDK what you’re talking about, Vim runs great on there.
Neovim all the way!
Rustanalyzer is seamless with it and I never have issues with multiple instances running
I also use Neovim with coc-rust-analyzer as my daily setup, although, for large projects, it eats up to 4GB of RAM :/
neovim has built-in LSP support and it works so. SO. SO! much better than coc-rust-analyzer. Start with this repo. I promise you that it’ll be a better experience for you. No node.js, only native code, and it’s significantly faster. The coc LSP plugins are really intended for vim because it doesn’t have asynchronous execution for plugins.
Totally agree with this, neovim with LSP is PERFECT! I had a lot of problem’s with coc and it was terrible, one day it worked one day it had another problems… Recently i decided to try Neovim with lua so i followed this tutorial video. You should take a look, believe me.
I also had huge problems with it, and indeed LSP support is why I use neovim these days and not vanilla vim. I probably had problems similar to what you did: sometimes it’d work, often it wouldn’t. And it was SO slow. I’m also using recent, powerful hardware: top of the line MacBook Pro, 16 core / 64 GB RAM Linux workstation, both on SSD/NVME storage. Once I switched to the built-in LSP, all my problems disappeared. I’m pretty happy with my current setup, and videos are hard for me to follow for tech stuff, but others who aren’t already may want to look at the video.
I should point out that even this repo reinvents things that are already in vim: you don’t need packer. Vanilla vim has package management now, all you need to do is put the plugins in a directory under
~/.vim/pack/whatever/start
. See:help packages
for more.
Wow crazy. I honestly couldn’t say what lsp settings I use. My personal config broke a while back and I use Astronvim now until I get to fixing it… Although so far its been good enough that I just dont bother moving back…
Yea, for me it’s also working pretty fast (unused ram is wasted ram anyway), just that I must always keep an eye on my RAM usage of my 10-year-old PC with 8GB of RAM and HDD only…
vscode. I think anything that supports LSP works well with rust, but my vscode setup is comfy enough and devcontainers are rather nice.
Helix, great out of the box experience and is written in Rust itself.
I used VSCode for a few months and tried the CLion free trial after missing some of the features from IntelliJ I use at work. I think CLion edges out just a little, but not by much. Both have some rough patches.
Next time I pick up a Rust project I want to try neovim; I keep ending in tutorial hell for vim and never actually building anything with it. But before that, I think I want to ditch my Windows OS all together and pick some Linux distro, something I’ve been putting off a very long time.
Try Linux Mint. It’s made for people who are coming over from Windows. You’ll find it feels very familiar.
This was also the distribution I chose when first moving away from Windows and I can definitely recommend it. The vast majority of things worked out of the box, and people on the Linux Mint forum were very helpful in solving my remaining issues.
I used to use CLion for rust but lately I’ve switched to VScode with rust-analyzer and it is pretty good, so I’ve more or less switched to it.
Also helix mentioned here looks interesting, I might try it out.
Neovim. Its awesome with the rust plugin. Everything works and it’s fast.
I’m not a rust dev but ran into Lapce recently which seemed to be vscode like IDE for rust made in Rust.
Helix text editor
VScode. It works mostly fine for me, using rust-analyzer and CodeLLDB
Helix is neat but not a full IDE. After a while I’m much more efficient and basically don’t use the mouse anymore. https://helix-editor.com/