I’ve enjoyed JetBrains over either so far.
Laughs in Zed
Neat
vim was such an unimaginable improvement over nano for doing stuff on linux servers. Having an in-shell-editor search-and-replace function alone is worth everything you have to do to learn vim.
And after I was comfortable around vim because of all the “training” on servers, I just switched to vim fulltime. No more GUI editor for me!
Nanos search and replace is
Alt+R
as far as I rememberHa, that would’ve helped me a few times. Good to know!
Still, I wouldn’t switch vim for nano ever again. nano is a good and easy start, but I think if you do more than just basic editing of a few files every now and then, learning vim is the way to go.
vim is pretty customizable, widespread and it has been around for quite some time after all. If you think you need it, somebody most likely already made it as a vim-plugin :)
You will be tempted to think that by learning how to use (neo)VIM your coding skills will magically improve tenfold.
It won’t
Wait really? Shit I’m like 1 year into learning vim. What editor should I switch to that will magically make me a good coder?
Jokes aside, all of my favorite IDEs have an option to use VIM key bindings so learning VIM makes it easier to learn other IDEs.
That alone was enough to convince me to learn VIM
Zed is better. The AI stuff can be disabled.
Vim and VScode are my favorite code editors but I admit that Vim is better :]
Knowing how to actually navigate vim is worth learning. Especially if you work in embedded systems where a lot of the time you’re on setup that is running barebones and likely just has vi as a text editor.
But I used VSCode for dev work with the VIM plugin.
Do you mean Neovim?
Surely you aren’t comparing a flat text editor to an IDE that has language server support, debuggers and refactoring tools?
I only use butterfly flaps that move magnetic needles next to my HDD.
Like a real programmer would.
I do the same with moths as they are more active at night
You need a bigger lämp brøther!
Vim and VS Code are both text editors that can become IDEs with plugins. You can use vim with language servers if you want, as there are plugins for it.
Thanks, I wasn’t aware of that!
Makes sense though. Vim plugins exist so anything is possible. Neovim having native support for LSP and DAP makes it a lot easier though.
The trap is that you should use vi. Don’t wuss out.
Yeah. A lot of people who use vim don’t know how to use the full power of vi. They’ll often install plugins to do things they could have easily done with built in features!
The one area where regular vi sucks though is undo. If you want multiple undo then you’ll have to at least go with something like nvi.
imagine thinking a non user will read this and want to use vi/vim
vim users have the same energy as latex users
I don’t really recommend people learn vi/vim even though I’ve been using it for years and love it. It’s a very personal thing and the time you invest into learning it might not be worth it if you don’t use its features enough.
I think it’s dependent on your personality and neurodivergence/neurotypical characteristics (I don’t know a word that encompasses all of this). If you’re the type of person who gets really annoyed/distracted by any sort of “friction” in the editing process then I think you may be a good candidate to learn vi. Otherwise probably not!
Edit: by the way I’m also a LaTeX user!
I sometimes wonder why some programmers don’t use vim. Aren’t they lazy enough to be bothered about unnecessary work and “friction” you have to deal with when using ordinary editors. I’d rather do the interesting parts of the job and command the computer to do the rest. Of course the communication with the computer has to be as concise, as effortless, and as easy as possible.
vim user
LaTeX user
When you go to the wrong side
I prefer to call it the dark side!
Come to the evil side, we have org-mode
I’ve tried. It breaks my brain too much. I’ve even used emacs without evil but the unholy combination just does not work for me.
I have the same problem with all vi/vim emulation modes in other editors. There’s always some incongruity that messes me up.
Helix tho
There’s no way to emote it, but you know when those old Italian ladies spit at people to keep the evil away from themselves? I just did that in your general direction…
lmao gramps. Real old lady energy here
Tbd, how many plants are carnivorous monsters that dissolve your flesh
And how many animals can melt Rocks into Magic snap Rocks camouflage them and plan months in advanced
And how many developers can
export EDITOR=nano export VISUAL=nano
It’s wild to me that people that people use VIM in professional software development settings (especially front end).
Like, I get it if you’re a sysadmin who’s spending all day in command lines and ssh terminals, but when you’re working on high level, user facing software, it’s just absurd to have the mindset that a command line interface will be better than a command line interface + a graphical interface.
Like, a GUI plus command line, objectively provides you with more UX tools and ways of presenting data and interactions to the user, than just a command line. Everything you can do in VIM, you can do in VSCode running VIM in a terminal, but not the other way around.
Maybe it’s because I got my start programming 3d modelling software, but there are fundamentally things that command lines are bad at representing.
Like, a GUI plus command line, objectively provides you with more UX tools and ways of presenting data and interactions to the user
My long list of vim plugins and adhoc macros would like a word. I don’t doubt VSCode can do something similar, but I love that I can script vim to do basically whatever. Also, it feels much faster to not need to touch a mouse at all.
I’ve posted a reply that basically covers my feelings on this here: https://lemmy.ca/post/41497148/15556917
you lost me at that ‘but not the other way around’ part
If you open a repo / folder in VSCode, you immediately have a terminal window pointing to that folder that you can execute any of your VIM or other command line programs in. You also immediately have a graphical file browser that’s always available in a pane to the side if you want, a visualizer of your current git branch and history, tooltips and the ability to hover over things for more info, panes that can preview images, pdfs, 3d files, assets etc, tooling and plugins for things like your dev servers / kubernetes / docker so that you can immediately see what services are running in what state, rich debugging, etc.
Fundamentally, I just don’t understand ideologically insisting on using the command line for everything. There are times when keeping it simple and text based makes sense, and it’s almost always necessary as a fallback, but if you have the option, you can represent things faster and more cleanly with modern graphical interfaces.
Like just compare the command line version of your git history:
With the Git Graph extension version in VS Code:
The Git Graph extension is built on top of those git CLI commands, but it’s an actual GUI that let’s you represent your git history in a much more readable and scannable format, with quick and immediate access to related commands like viewing the files that were changed in a commit, or jumping to specific commits and branches.
Ignoring the related workflow improvements, even just from a pure graphical standpoint, if a developer honestly cannot comprehend why the human brain more easily processes stuff like a single connected git branch like the above, compared to a bunch of disconnected pipes | and slashes \ on separate lines, then I feel like they need more design training, or perhaps they’ve just evolved into such pure text based beings that they can no longer comprehend how normal people’s brains work, but either way, it’s not going to tend them towards good frontend development. I’ve worked at MAANG companies and I’ve seen the internal research on how much of a difference a slight feeling of being overwhelmed can make towards someone’s enjoyment and usage of software, I don’t see why that’s so controversial or unexpected in some circles.
Like at work, if a developer wants to use VIM and command line tooling to do their job and has a setup that lets them work as fast as someone using a graphical IDE, I have zero issue with it, but the default Dev Environment that we’re going to setup and document is going to use something like VS Code that can do more OOTB without a huge amount of learning CLI commands and workflows.
While I agree with your general idea that there shouldn’t be any dogmatic insistence that terminal environments are superior and everyone should use them. But the points you’re bringing up tell me that you don’t actually know how to use a terminal environment for development which makes your point equally as dogmatic as the terminal purists.
But the points you’re bringing up tell me that you don’t actually know how to use a terminal environment for development
In what way? That you can have multiple terminal panes open to accomplish a small portion of the above?
That you can have multiple terminal panes open to accomplish a small portion of the above?
Yes. Obviously. Two conclusions available to you are, either CLI developers are idiots, or they have tools you are unaware of.
The answer to “how can anyone work this way?” is out there, if you’re really interested.
Getting an automatic terminal window when you start up vs code is no different having two panes in tmux, one for VIM and once for terminal. You can get a visual project tree representation in VIM by using neotree plugin. Your git doesn’t need to look like that, you can use lazygit. The only things you can’t do within a terminal are reading the pdf or checking assets etc (but I personally wouldn’t look at those things within vs code either), everything else you can do just as easily within the terminal without it looking like the image you gave.
I gave you the benefit of doubt by stating you don’t know how to set up a terminal environment. But if you’re going to be adamant about knowing what you’re talking about then you should also know you’re deliberately misrepresenting the alternative to make your arguments seem more valid.
Getting an automatic terminal window when you start up vs code is no different having two panes in tmux, one for VIM and once for terminal.
Yes it is, and I honestly cannot fathom how you cannot seem to comprehend the difference between text, and an actual pleasant to use and look at graphical interface.
Lazygit looks exactly as trash as the OOTB command line git. How do you not understand that the human brain processes a smooth connected line more easily than a pseudo line broken up by the line space height, made out of pipes and slashes? This is like product design and UX 101.
Again, VSCode does everything VIM does. Not vice versa, one is a superset of the other.
Just as dogmatic as the people you complain about.
Everything you can do in VIM, you can do in VSCode running VIM in a terminal, but not the other way around.
You would sure think so, right?
But the VSCode plugin ecosystem still lacks some features available in the Vim ecosystem, and (fl just for example) LazyVim has most of the features available in VSCode.
At the end of the day, the biggest difference is speed. Even very brief unexpected delays can break my concentration. While VSCode is no slacker, it still has some delays, probably mainly because it’s still JavaScript under the hood.
Once there’s a GoLang, Rust or C port of VSCode, I may well switch permanently.
I agree. I hate using a mouse and generally avoid it, and still the productivity gains I get from using something like VS Code versus Vim with plugins to the max are impossible to ignore.
When I’m juggling like 3 development contracts at once, it’s dumb of me to not use every little gain in productivity possible. I don’t have time to spend a day recreating a plugin to my liking in Vim when something already exists that gets me 99% of the way there. I don’t care about the extra RAM use because I have plenty of that.
I think some people just like to die on this hill out of principle, and that’s whatever, more power to them.
It’s more wild to me that people use VSCode over any other IDE.
Name your preferred IDE so they can be compared or don’t bother posting.
to piss both audiences here:
Emacs in graphical mode
🤡
This is the editor wars equivalent of taking your shirt off and yelling “come at me bro!”
It’s literally just a basic part of debating something. You say X is bad, I say ok, then what’s your alternative?
I’m this case apparently it’s a clown emoji. So clearly they have a very valid point and definitely weren’t just making an empty pointless comment cause it sounds edgy.
VSCode is not even a true IDE like, for example, VS itself.
VS Code is not an IDE
is is the dumbest most pedantic argument.It is a text editor explicitly designed to have plugins that turn it into whatever IDE you want it to be.
i.e. it’s an IDE that you get to specify yourself rather than being locked into the exact toolchain that the IDE developers think is best.
You have overdone the pedantic part, so I will do the same: GUI has objectively way more visual noise, so exactly in professional software development setting I prefer using NeoVim with plugins, configured by me for my convenience, because I have no intention of spending any extra effort, and more importantly, thought, on whatever the IDE decided I must need. I want to think about the task at hand, not memorize the finger-twisting magical shortcuts or mouse-clicking several menu layers to do one damn simple thing
GUI has objectively way more visual noise
Nope. You can open up VSCode and just have it open to a terminal window if you want.
A GUI + Terminal gives you more options than just a terminal. It’s not complicated and it’s not arguable, one is a superset of the other.
-
that is not VSCode default, so nah. once again: I have no time for battling against software
-
and if I do not want the GUI part, how come it surprises you that I do not use that superset?
and if I do not want the GUI part, how come it surprises you that I do not use that superset?
Go ahead and represent an arbitrary 3d shape using the command line, suddenly you may realize that a typewriter’s interface isn’t the fastest for accomplishing every programming task.
Regardless, you can be happy with a limited subset of functionality and trying to cram every interaction into text, that’s not an argument that that way is better or that a new dev should go that route, just that you can get by using that method.
It’s wild to me that people that people use VIM in professional software development settings
Ya, sure. wild that professional software development does not begin and end with 3d shapes. Great worldvew, thanks
My worldview is that it’s wild to choose a dev tool chain incapable of drawing basic 2d shapes, when you have ones available that can do anything.
So I re-state the same n-th time over: I, and many other devs, have no need to draw anything. So I, and many other devs, will choose whatever works for us, and there is exactly nothing wild in doing so
Lol I am not making 3d shapes in the first place. Anyway, here ya go: 1,2,3
4,5,6
7,8,9
10,11,12
Do you need an explanation for that?
K, now give me the longest edge and it’s displacement relative to the x axis. Then rotate the shape until that edge is roughly 33 degrees off the z axis.
Oh wow, look, suddenly it may be helpful to have a way other than text to draw and visualize things.
It may be, but really it doesn’t even matter to me. I will choose the tool that can do that using command line anyway
-
I am not a programmer but your line of argument begged the question, “Are more options better, more efficient/effective, etc. or otherwise desirable?” Sure, if the only criterion you are trying to fulfill is “have as many options and different ways to complete the task at hand as possible,” you are correct that you can emulate a CLI within a GUI so you can accomplish a task both by clicking or typing instead of just typing.
However the parent you are responding to stated that having these additional choices (what he terms as “noise”) is clearly not effective for him so he disagrees with your original premise. Apparently for them “less is more” which is certainly understandable.
Sure, if the only criterion you are trying to fulfill is “have as many options and different ways to complete the task at hand as possible,”
Except that’s not what I’m saying.
I’m saying it’s important to have the right tool available for the job.
If you limit yourself to VIM and command line interfaces, it will mot matter if a GUI is the right tool, it’s not in your tool chain, you can’t use it.
i.e. I don’t use VSCode because it provides me with multiple ways of viewing git’s branching history, I use it because it provides me with the better way of doing so. And when the better way of doing something involves using the command line, it lets me do that too.
People insisting on using the command line for everything is like a carpenter that only buys a circular saw and refuse to buy any other saws. Like yeah, you can do almost any cut with a circular saw, and it’s not a bad place to start, but theres a reason professional carpenters who need to do repeated cuts quickly, accurately, and in a way that is teachable to others, don’t limit themselves to a single type of tool for every scenario.
People insisting on using the command line for everything is like a carpenter that only buys a circular saw and refuse to buy any other saws. Like yeah, you can do almost any cut with a circular saw, and it’s not a bad place to start, but theres a reason carpenters don’t limit themselves to a single type of tool.
You’ve just given the usual argument for learning Vim.
Having mastered both, my lack of patience for GUI tools is just that: impatience. I can use any tool, but I reach first for the fastest.
Ok, cool beans bro, try and write 3d modelling software with just a command line interface and you’ll quickly see how a typewriter’s format for displaying text isn’t the fastest for every programming task.
Fly in fly trap:
:q!
I thought flies use
ZZ
for the onomatopoeiaSo
ZQ
comes from the sound of a fly being swatted?
But if you accidentally typed
a
ori
, press ESC first.Recording @q
I remapped the power button of my computer to whatever that series of keypresses is that exits vim.
that series of keypresses is that exits vim
One of the great mysteries of the universe. However, I can confirm that my standard power button also exits vim.
That’s really smart. That way if I ever figure out the command to exit Vim, it’ll behave the same as my current method (powering off the PC.)
After years of using Linux, the last time I used Vim, I remembered for the first time how to go into command mode, exit, and save the file I was editing without looking anything up.
I’m the opposite, I sometimes find :w or :wq written in text files I have edited with non-vi editors.
I made :q alias to exit in my shell