Have been a professional software engineer for 8 years now. Have yet to find a reason to use vim for anything (other than availability of course, but if nano isn’t installed for some godforsaken reason I have other problems lol).
I’ve been in various forms of coding and administration for around fifteen years now. Despite trying lots of editors, I have yet to find a reason to use anything but vim.
I do like obsidian for note taking.
edit: Removed typo.
Professional software engineer here, using vim as my primary editor.
Vim is a way more competent editor than nano. If you spend a lot of time editing files via ssh, vim is amazing. And when you get bitten by it, you’re infected. ;-)
Fair. But to a sysadmin or devops engineer availability is pretty important.
I used to think this way. Until I found that with emacs you can edit any file on an SSH enabled computer remotely. Meaning that not only are you no longer constrained by what the computer has installed. But you can use your personality configured editor while editing that file. It’s called tramp.
BTW, with Emacs you can use vim key bindings evil-mode, so don’t stress about that.
Tramp is more featured, but if all one cares about is being able to edit remote files using a local editor, vim can edit remote files with scp too: scp://user@server[:port]//remote/file.txt
I tried tramp-mode at some point, but I seem to remember some gotchas with LSP and pretty bleh latency, which didn’t make it all that useful to me… But I admittedly didn’t spend much time in emacs land.
I’ve also used sshfs to mount a remote directory and edit using my local editor/env.
You can do that with vscode too. And probably many IDEs.
The only real reason for which you would need to use vim in such cases is if the target computer can’t run the vscode server, which I’ve never encountered yet.
I’m talking about not needing anything installed on the server though. Like you don’t need sudo. If the server has ssh then you can use Emacs to edit a file on it
Don’t need sudo or anything pre installed for vscode either. It will send the server to the machine via SSH and then run it automagically.
codium > code
Ooooh thank you for reminding me I need to make this switch
If Vim is so good, then why can’t you browse Lemmy from it?
This meme was made by the Emacs gang.
Because unlike emacs gang, we don’t need to build an OS to browse Lemmy.
How bout you go back and let your friends know that if they’re in need of a good editor, try Vim ;)
Vim needs are met by using Evil-Mode. You don’t have to leave Emacs for this.
As a poke at Emacs’ creeping featurism, vi advocates have been known to describe Emacs as “a great operating system, lacking only a decent editor”.
https://en.wikipedia.org/wiki/Editor_war
:P
*stealthily closes nano window and closes laptop lid…
How bout you go back and let your friends know that if they’re in need of a good editor, try Vim ;)
If my friends wanted a good editor, then I wouldn’t recommend a Vimitor, I’d recommend ed, the standard text EDitor :p
Haha, y’all are welcome to try that ;)
helix gang anyone?
:3
Helix is much faster than neovim, but annoyingly it feels so limited. Can’t change anything about it.
But it’s supposed to get plugins at some point.
👋 present!
epic editor :3
Meanwhile, James rocks up with Notepad++
smh real programmers use magnetized needles on tape
Couldn’t help myself
The Fiat Panda of text editors
I use vim btw
I use neovim btw
I use vim, aliased to vi, on Arch btw.
tbh, one of the essential things vim gets right for me is that it’s designed as a text editor, not (only) a code editor. I use it for so much non-code text as well, but it feels weird opening a coding tool for such things.
It’s great to use an editor designed and built when vietnam and leaded gas were all the rage.
Exactly! It’s rare to find such old things that are still excellent today
I plan on moving to a nice Neovim setup eventually, but VSCodium is so convenient out of the box for a baby developer like me.
You’ll be glad to know that the difficulty comes from the syntax and very little from any programming skill level. You learn new ways of writing certain code structures like indented curly braces for example. Programming python might be easier than cpp in vim, not due to the language, but just cpp having more complex syntax to type.
Tldr, almost exactly the same amount of effort whether you’ve been coding for two weeks or two years.
Just out of interest, what are the reasons someone would move from neovim to helix?
i have sort of done this. the main thing is that the reversed object-verb command model just… latches onto your brain. this is from kakoune of course, but it just makes a lot of sense coming from vimland. multicursor is also nice because it removes some modes, meaning there is less state to keep in your head. finally, the plug-and-play nature of helix means you can have an lsp-enabled environment from the word go, with no configuration.
That’s a good enough excuse for me to try it! Thanks.
I switched after development ended on the package manager I was using on neovim. I didn’t at that moment want to simplify my vimconfig, so I looked into helix.
Helix highlights the action you take, so if for example, you are deleting 5 lines, you select the lines first then hit delete. Sometimes the vim actions end up taking fewer keystrokes though. And I still prefer some ways vim does things. And I don’t always agree with the kakoune inspiration of helix (I haven’t used kakoune, just going by what the docs say) - for example, movement always selects text which I then have to unhighlight.
But the biggest reason I stuck to helix was sane LSP defaults out of the box with minimal config. I was tired of having to fix LSP related bugs in my vim config after package updates.
TLDR: saner defaults for helix + lazy to fix my bloated vimconfig.
Immediately after you install helix, you can start working, no config required. It’s really nice.
It also has OOTB LSP, unlike in neovim where you have to setup manually for each installed LSP, helix just detects it. I also personally think it has better keybinds than neovim.
But it still doesn’t have a plugin system, and it’s quite opinionated. They’re both amazing, and great options. Just depends on what you want in an editor; customizability, or do you want it to just work.
Personally, I love to tinker (especially on my main machine) so I don’t mind the complexities of setting up neovim. However, I do mess around with a bunch of servers, and I like to edit code on those servers, meaning I am often installing/compiling neovim and copying over my config before I can get to work.
What I am liking about helix is the idea that its default setup has what I need to get started straight away.
I am looking forward to giving helix a go.
So do i :) but i think helix is especially powerful with nix, for example. instead of having 5 compilers, lsps and such installed, you can create a nix flake for your project and it’ll install all that stuff for you. But for neovim you’d have to manually configure those LSPs in your config, so it is kind of just pointless anyway. But helix automatically loads all your installed LSPs, no config required. I love that about it, but neovim has grown on me.
Plus, helix’s keybinds are amazing, even better than neovims. God i miss it.
I switched to zed too. It’s not perfect but it’s just nice to use a different editor that is not sluggish.
Zed is amazing
Ewww not even vscodium
I feel like I’m the only person using KDevelop
“But guys, gtfomp” - emacs
I would argue that vim is fantastic for a lot of editing and coding tasks, just not all of them.
Where it utterly fails is with deep trees of files in codebases, like you see in Java or some Javascript/Typescript apps. Even with a robust suite of add-ons, you wind up backing into full-bore IDE territory to manage that much filesystem complexity. Only difference is that navigating and managing a large file tree w/o a mouse is kind of torture.
Fuzzy finding really shine for this use case, no need for a mouse.
Once I got used to single-directory filetree browsing plus fuzzy finding, I have never been able to comfortably use a traditional filetree anymore. most of them are not designed for efficient keyboard use (vscode and intellij at least) and don’t really help understanding the structure of the project imo (unless there arent that many files). For massive projects I find it easier to spend the initial effort of learning a few directory names and the vague structure using oil.nvim, and then eventually I can just find what I need almost instantly by fuzzy finding.
File-based navigation is often inefficient anyway (symbolic navigation is much better when you can), but if you do need it, that’s what fuzzy finders are for. Blows any mouse-based navigation out of the water.
The only time a visual structure is useful is when you are actually just interested in learning how things are structured for whatever reason, but for that task,
tree
works just fine anyway.
Code and intellij have plugins available to use vim keybindings on them. I like this approach to get the best of both worlds
the vim plugins are so bad… they only support the super basic stuff, as soon as you want flags with your search or chaining of commands they are useless
The neovim plugin for VSCode uses the actual nvim binary as a backend and supports all features.
that’s a pretty neat solution
It’s not the same. Granted it’s been years since I used the vim plugin but last time I tried it couldn’t even do standard find and replace.
This is the way
It always surprises me how complicated some of the editor tooling sounds in threads like this. Obviously once you learn how to use these things they are powerful, but how do people have the patience to deal with all of that in the beginning? This is coming from a guy who writes scripts constantly to avoid doing tedious, error-prone things.
Also I keep seeing people say vscode is slow. One of the reasons I switched to it is that it’s insanely fast compared to other editors I used (even those with far-inferior featuresets) 🤷♂️