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.
I do the same with moths as they are more active at night
You need a bigger lämp brøther!
Like a real programmer would.
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!
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.
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.
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.
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.
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.
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.
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.
-
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.
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
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
-
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?
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.
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.
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
It’s more wild to me that people use VSCode over any other IDE.
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.
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.
🤡
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’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.)
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.
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
Emacs with evil mode
So kind of off topic. Like 15 years ago emacs vs vim split in engineering was like 50-50. Now I see more like like 90-10 work com winning. What happened? I always assumed they are equivalent more or less.
There’s been a lot more evangelism about emacs lately.
Also the fact emacs has doom and spacemacs to ease new users in while vim drops you into
:
and tells you to swim means that it’s easier for emacs to get new users.Emacs has scripts that can do almost anything. If you wanted to, you could pretty much replace your graphical desktop with Emacs and still do pretty much everything you do. vi is an editor.
Ah! I loved using Doom EMacs for a while!
… but alas I came back to my initial love with Neovim 😜
Yeah, this is the best solution at the end of the day for most would be text wizards, emacs is beautiful, vim keybindings are beautiful.
Though I use neovim as a text editor, Zed is my IDE of choice. I think it’s a good alternative for most people that don’t like Electron-based applications.
As a long, long, long time vi/vim/neovim user, zed is just a breath of fresh air. It’s feature first like neovim, but doesn’t suffer from them being half baked somehow
Zed is good but still in its infancy, but it has new content and sees many improvements quickly, needs more extension developers and I had to make my own extension for a language that was not well handled by zed
Good luck exiting that!
ctrl-x. ;)
oh no no no
it’s the x button on the top right of the window
laughs in i3
HAHAHAHA I know the secret passcode to escape!
Incidentally, it’s ctrl+]. But I remap it to ‘kj’, and somehow have never typed ‘blackjack’ in all my years of using Vim!
I just use cntrl-z and then
kill %1
I fucking love that 😆
So… we meet at last, Doctor Evil!
vscodium slightly better than vscode tho.
honestly all ide’s are rubbish - especially electron ones. for a gui editor, i’ve just gone back to sublime text and have never been happier.
Notepad++ is good but a bit bloated. Would not call it rubbish. Node is solid.
What is your opinion on Lapce ?
Tbf codium is a very well optimized electron app. Don’t believe me? Try discord
very well optimized electron app
It’s like a very light Elephant
Is there a stable way to use closed extensions (like the MS Python one) with vscodium by now? I’d love to get away from MS’ grasp, but it’s much harder if I’ll be missing out on language integrations.
Is there a stable way to use closed extensions (like the MS Python one) with vscodium by now?
Yes. Use this config edit.. Everything works fine.
Hm, people in the GitHub issue are still complaining that it doesn’t work. Does it work fine for you?
I’ve never had any issues with any VSCode plugin failing in VSCodium.
But I’m not a PyLance user.
Your experience with other extensions sadly doesn’t mean much for Pylance. It specifically has DRM implemented to prevent vscodium from loading it, just like some other MS extensions. That’s why I’m asking.
The big one (imo) is extensions. Outside of the vscode/atom/vim/emacs ecosystems sublime has probably the largest library of extensions, and they’re readily installable. So if you want an extensible text editor that’s not based around electron or the terminal it’s the obvious answer.
Atom? People still use atom?
Atom is dead, the successor is called Pulsar
Technically the successor is called VSCode and the original authors are working on Zed.
vscode is an entirely different editor not based on atom. All it used was the atom shell archive https://github.com/electron/asar and electron
Zed for lightweight, Kate for regular text and the Jetbrains suite for when I want something that uses all of my RAM, but has a lot of niceties.
The only time I open up vscodium is when I want to conveniently edit files in a docker container that are part of the image rather than mapped from my filesystem
Wouldn’t the one that ops you into telemetry be the trap?