Vim is absolutely not an IDE. It has no integrations with any language. It’s just a powerful text editor. You can add language plugins and configure it to be an IDE.
That’s what most IDEs are. VS Code doesn’t have any native integrations. Everything is provided by plugins. The default plugins that ship with VS Code can be disabled, and you’ll have just a powerful text editor.
(To do this, go to Extensions tab, click the filter icon, select “Built-in”, and go down the list to disable all of them. Or just build a version with no built-in plugins.)
In that case every IDE is “just a text editor” because basically every IDE is built around modularity in this same way. This is just nitpicking over what is preinstalled.
Eclipse, visual studio, pycharm, idea… Those are full blown IDEs. They come with all the extras. All the text editors that can become IDEs have extensions or plugins that enable what these other actual IDE do natively.
Nowadays using vscode to debug a running program is common, but that was something only restricted to full blown IDEs some years ago, I’d say that vscode is lightweight IDE that can be expanded, but vim is a text editor first and foremost. You can’t really debug code in vim AFAIK, the most you get is syntax highlighting, linting, automatic whitespace removal and auto formatting? Not sure about the last one.
No offense intended here - But why is this being upvoted?
vim absolutely is an IDE if that is how you want to use it. Syntax highlighting, linter, language specific autocomplete, integrated sed/regex. And much, much more.
I don’t know that’s a fair anology. Vim does what a IDE can do without almost any setup with LazyVim and Lunar Vim and a bunch other prebaked setups. Instead of writing your vscode config in JSON or using a GUI, you can use lua. It’s more like turning car into a track car or something where you’re already a mechanic
The things you’re describing are still just text editor features. An IDE generally has specific functionality for building, testing, packaging, debugging etc. for one or more programming languages/environments.
(Which vim can do if configured, I don’t really have an opinion about that tbh)
Syntax highlighting, linting, and language specific autocomplete are features supported by plugins and scripts. Plain, simple vim is a powerful extensible text editor. The extensibility makes it easy to turn into an IDE.
Yeah, there is a generic syntax highlighting scheme. I had forgotten because it’s not very good for some languages, I’d replaced it with a LSP-based implementation years ago.
I’m not a text editor. But anyway, would you call a shell script that invokes python.exe $1 a Python IDE? Why would you? Vim isn’t designed to facilitate the use of vimscript, vimscript is just an extensibility feature of Vim.
Vim isn’t designed to facilitate the use of vimscript, vimscript is just an extensibility feature of Vim.
Vim is designed to edit code, by the people who were doing it back in the 70s and all of its features are there to enable better, faster, and more efficient editing.
It has scripts for the sake of those scripts enabling integrated developer features. Because they’re part of vim they’re in the environment and the program is used predominantly for development.
To edit text files. It doesn’t matter if it’s code, configuration files, or plaintext. There are no interpreters, no compilers, no debuggers, nothing designed to support any particular framework or language or workflow. All of that is possible to add through the extensibility features.
Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient.
Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor ‘Vi’, with a more complete feature set.
Vim is a highly configurable text editor built to enable efficient text editing.
Vim is a text editor which
includes almost all the commands from the Unix program “Vi” and a lot of new
ones. It is very useful for editing programs and other plain text.
Not at all what I meant. It’s just, out of the box, a powerful text editor that can be configured and built on if desired. If you want it to be more than a text editor, you can easily make it so.
@kogasa Hehe, shit, so long done something wrong as I use #vim as an IDE. Okay, some own helpers, some plugins, the direct integration for #golang via LSP and since some time also ChatGPT and Copilot. But hey, it’s no IDE. 🤪
Like I said, Vim can be made into an IDE by adding and configuring plugins. Basic barebones vim is designed to be a powerful, extensible text editor, not an IDE.
There’s a guy on Youtube who does programming language tutorials/demonstrations. Like he starts out with C++ and in one hour you’re at object inheritance, crash courses I guess is the term for them.
He did one video that was as much a Vim tutorial as a tutorial for this language. “Press 3k, then enter, then i, and type “std::out(“whatever C syntax is”)” and then hit escape and…”
For teaching something like a little bit of Python or a little bit of Bash or whatever, I’d rather use Nano, because you can learn how to use it in seconds. Vim is an amazing tool but lord don’t try to cram a Vim tutorial into another already technical tutorial.
Vim absolutely chews through anything you throw at it. Lots of times we need data formated or lots of SQL queries and I’m the go to guy because I understand vim macros.
Especially if you have any form of RSI.
I wonder if it would be possible to make a user accessable way to expose similar power to the common user.
Word is a WYSIWYG editor. We don’t talk about it much these days because it’s just how things are done, but it took a long time for the industry to come up with a way to display text on screen with rich formatting and have it come out the same way in print. There was a lot of buzz around it in the late 80s and early 90s.
Word solves a completely different problem than an IDE. Notepad is a raw, minimal tool that could be built on for either WYSIWYG or an IDE.
It just makes a lot of stuff way easier once you know how to use it. Switching out a word for another: two button-presses, duplicating a line: three presses, deleting 500 consecutive lines: five presses
How do we work this? Do we alternate between trying to ruin people’s lives with elisp and chasing the perfect .vimrc or lua - config? Maybe grab some bytes from /dev/urandom and send them to the editor whose first letter comes up first? What about holidays?
But you can do all that with nano and it is straight forward and you don’t need to memorize any key combinations. I mean, I get it and no judgement here. I just use nano because it’s easy and quick.
I write my code in an actual IDE. And I use nano for only, like you said, config files and those little things. And I have never used emacs and I don’t even know how it looks like. I’m dead serious, I don’t even know what emacs is or what it does. lmao
Emacs is basically a lisp interpreter packaged with a suite of “example” utilities, like a text editor. It’s one of the two historical editors used as terminal IDEs, along with vim. Emacs tends to take a more batteries, kitchen sink, web browser, games, IRC client, etc-included approach. It can seriously be closer to an OS in functionality.
I’m struggling to see the connection here. I guess I don’t need to fiddle with the mechanical pencil, it breaks very quickly? I don’t want to go through changing those little sticks? Graphite pencil only needs to be sharpened? So, you’re supporting using Nano? I’m a little confused
Fair enough! I’m an English second language speaker too, I understand the struggle!
But to answer about relevance: to me, text editors are just tools. I don’t really care which one you use, as long as you do the job well. I use vim (or honestly, mostly vim bindings) everywhere I can as they’re just second nature to me at this point, and I go around text much quicker when thinking in text objects than the typical Ctrl+Alt+… and home/end/pg up/pg down shortcuts. I could just as well work with Notepad++, it’s just gonna slow me down.
So in that sense, it’s just like a pencil. Some have preferences as to which pencils they like to write with. I like fountain pens and mechanical pencils. You seem to prefer graphite pencils, and guess you probably prefer ball pens ;)
I don’t understand the need for Ctrl-C/V, when manually copying the text exists.
I know it’s snarky, but that’s the level of difference we’re talking about here.
Or imagine, to delete a line, someone Right Arrows 50 times, then backspaces 50 times, instead of using the shortcut.
I never get the need to use vim and nano exists.
Vim really is an IDE, not a text editor. It’s usable as an editor but overkill.
Nano serves a difference purpose. It’s like telling someone on a bike that a mustang is better.
Vim is absolutely not an IDE. It has no integrations with any language. It’s just a powerful text editor. You can add language plugins and configure it to be an IDE.
That’s what most IDEs are. VS Code doesn’t have any native integrations. Everything is provided by plugins. The default plugins that ship with VS Code can be disabled, and you’ll have just a powerful text editor.
(To do this, go to Extensions tab, click the filter icon, select “Built-in”, and go down the list to disable all of them. Or just build a version with no built-in plugins.)
Sure, and VSCode without any plugins is a text editor, not an IDE.
In that case every IDE is “just a text editor” because basically every IDE is built around modularity in this same way. This is just nitpicking over what is preinstalled.
Eclipse, visual studio, pycharm, idea… Those are full blown IDEs. They come with all the extras. All the text editors that can become IDEs have extensions or plugins that enable what these other actual IDE do natively.
Nowadays using vscode to debug a running program is common, but that was something only restricted to full blown IDEs some years ago, I’d say that vscode is lightweight IDE that can be expanded, but vim is a text editor first and foremost. You can’t really debug code in vim AFAIK, the most you get is syntax highlighting, linting, automatic whitespace removal and auto formatting? Not sure about the last one.
You cannot remove java from idea. Therefore it is not just a text editor because support for the language isn’t added through an extension
IDEs are designed to support a software development workload. A text editor is designed to edit text files.
Ah, so Code is the same as Vim if… I go out of my way to either disable things on one or install things on the other.
Or… Or… Code is an IDE (that you can strip down) and Vim is a text editor (that you can strip up).
We don’t stop calling a computer one just because it can still boot without most of its modules. The default presentation matters.
No offense intended here - But why is this being upvoted?
vim absolutely is an IDE if that is how you want to use it. Syntax highlighting, linter, language specific autocomplete, integrated sed/regex. And much, much more.
“You see here my car has positions for all the parts of a boat so it’s easily made into a boat and it’s already waterproof but it’s just a normal car”
I don’t know that’s a fair anology. Vim does what a IDE can do without almost any setup with LazyVim and Lunar Vim and a bunch other prebaked setups. Instead of writing your vscode config in JSON or using a GUI, you can use lua. It’s more like turning car into a track car or something where you’re already a mechanic
The things you’re describing are still just text editor features. An IDE generally has specific functionality for building, testing, packaging, debugging etc. for one or more programming languages/environments.
(Which vim can do if configured, I don’t really have an opinion about that tbh)
Syntax highlighting, linting, and language specific autocomplete are features supported by plugins and scripts. Plain, simple vim is a powerful extensible text editor. The extensibility makes it easy to turn into an IDE.
There’s syntax highlighting by default in vim though.
Yeah, there is a generic syntax highlighting scheme. I had forgotten because it’s not very good for some languages, I’d replaced it with a LSP-based implementation years ago.
ladies please, you’re all beautiful
You can’t run and debug things in vim, can you?
It literally has a built in scripting language.
So it’s an IDE for vimscript…? No.
You’re not a normal text editor if you have a built in scripting language.
I’m not a text editor. But anyway, would you call a shell script that invokes
python.exe $1
a Python IDE? Why would you? Vim isn’t designed to facilitate the use of vimscript, vimscript is just an extensibility feature of Vim.Vim is designed to edit code, by the people who were doing it back in the 70s and all of its features are there to enable better, faster, and more efficient editing.
It has scripts for the sake of those scripts enabling integrated developer features. Because they’re part of vim they’re in the environment and the program is used predominantly for development.
To edit text files. It doesn’t matter if it’s code, configuration files, or plaintext. There are no interpreters, no compilers, no debuggers, nothing designed to support any particular framework or language or workflow. All of that is possible to add through the extensibility features.
https://vim.org/
– https://vimhelp.org/intro.txt.html#intro.txt
–
Those features aren’t enabled nor integrated. They’re added to Vim at its extensibility points. Baseline vim doesn’t have them.
Yea, vim really isn’t anything near how useful emacs is.
Emacs really is powerful, all it needs now is a decent text editor.
It has one. It’s called evil-mode.
emacs is solely for watching the text version of Star Wars and you know it
Not at all what I meant. It’s just, out of the box, a powerful text editor that can be configured and built on if desired. If you want it to be more than a text editor, you can easily make it so.
Eh. Both are good choices. I prefer vim for my workflows - I like the terminal.
ETA: Will have to give Emacs another go though at some point.
@kogasa Hehe, shit, so long done something wrong as I use #vim as an IDE. Okay, some own helpers, some plugins, the direct integration for #golang via LSP and since some time also ChatGPT and Copilot. But hey, it’s no IDE. 🤪
Like I said, Vim can be made into an IDE by adding and configuring plugins. Basic barebones vim is designed to be a powerful, extensible text editor, not an IDE.
It’s designed to be an extended vi clone above anything else.
Press X to doubt
In case of a house fire, I’d only escape with two things: my cat and my .vimrc
Why do you nor have a backup of that .vimrc?
I guess it depends on if you’re the type of person who sees VSCode as an IDE or just a text editor.
Vim is effectively the same way.
Nano is for those that occasionally edit text files from a terminal.
Vim is for those who make a living out of it.
There’s a guy on Youtube who does programming language tutorials/demonstrations. Like he starts out with C++ and in one hour you’re at object inheritance, crash courses I guess is the term for them.
He did one video that was as much a Vim tutorial as a tutorial for this language. “Press 3k, then enter, then i, and type “std::out(“whatever C syntax is”)” and then hit escape and…”
For teaching something like a little bit of Python or a little bit of Bash or whatever, I’d rather use Nano, because you can learn how to use it in seconds. Vim is an amazing tool but lord don’t try to cram a Vim tutorial into another already technical tutorial.
If you edit files a lot vim is worth its weight in gold. Nano makes me want to kill myself as everything takes so much longer.
Nano is perfectly sufficient for a very rare edit.
Vim absolutely chews through anything you throw at it. Lots of times we need data formated or lots of SQL queries and I’m the go to guy because I understand vim macros.
Especially if you have any form of RSI.
I wonder if it would be possible to make a user accessable way to expose similar power to the common user.
So like Word vs Notepad?
Not really, or that doesn’t feel right to my. Word and notepad basically still do the same thing except for that word lets you add style.
Like a manual vs an automatic car, maybe?
Word is a WYSIWYG editor. We don’t talk about it much these days because it’s just how things are done, but it took a long time for the industry to come up with a way to display text on screen with rich formatting and have it come out the same way in print. There was a lot of buzz around it in the late 80s and early 90s.
Word solves a completely different problem than an IDE. Notepad is a raw, minimal tool that could be built on for either WYSIWYG or an IDE.
More like Visual Studio Vs Notepad
For the pedants, I hope y’all can at least agree that lunarvim is an IDE:
https://www.lunarvim.org/
(Note, a comment saying it’s a “bad IDE” doesn’t make it not an IDE)
It just makes a lot of stuff way easier once you know how to use it. Switching out a word for another: two button-presses, duplicating a line: three presses, deleting 500 consecutive lines: five presses
What if I want to undo my life’s mistakes.
Church of Emacs is always there ;)
How do we work this? Do we alternate between trying to ruin people’s lives with elisp and chasing the perfect .vimrc or lua - config? Maybe grab some bytes from /dev/urandom and send them to the editor whose first letter comes up first? What about holidays?
I’m gonna go with yes 😁
But you can do all that with nano and it is straight forward and you don’t need to memorize any key combinations. I mean, I get it and no judgement here. I just use nano because it’s easy and quick.
deleted by creator
I write my code in an actual IDE. And I use nano for only, like you said, config files and those little things. And I have never used emacs and I don’t even know how it looks like. I’m dead serious, I don’t even know what emacs is or what it does. lmao
Emacs is basically a lisp interpreter packaged with a suite of “example” utilities, like a text editor. It’s one of the two historical editors used as terminal IDEs, along with vim. Emacs tends to take a more batteries, kitchen sink, web browser, games, IRC client, etc-included approach. It can seriously be closer to an OS in functionality.
You can also copy paste by manually copying text by hand, would call that a valid alternative to Ctrl-C/V?
I never get the need to use a mechanical pencil and graphite pencils exists
I’ll level with you: I’m kind of a moron.
If my command line text editor has its own bespoke integrated command line, then science has gone too far and we need to stop lmao
😂
It’s cool. We’ll just write a lua plugin to extend science so that we can go too far enough.
I’m struggling to see the connection here. I guess I don’t need to fiddle with the mechanical pencil, it breaks very quickly? I don’t want to go through changing those little sticks? Graphite pencil only needs to be sharpened? So, you’re supporting using Nano? I’m a little confused
Yet many people prefer mechanical pencils. Are you against choice? What is there to get or “need”?
Nah, this is not relative at all. Still, I know my kid hates mechanical pencils. I hate them, too.
“Relative”? 🤨
Relevant. RELEVANT!!! Damn it. Ok you got me 😂 English is my second language (still not an excuse)
Fair enough! I’m an English second language speaker too, I understand the struggle!
But to answer about relevance: to me, text editors are just tools. I don’t really care which one you use, as long as you do the job well. I use vim (or honestly, mostly vim bindings) everywhere I can as they’re just second nature to me at this point, and I go around text much quicker when thinking in text objects than the typical Ctrl+Alt+… and home/end/pg up/pg down shortcuts. I could just as well work with Notepad++, it’s just gonna slow me down.
So in that sense, it’s just like a pencil. Some have preferences as to which pencils they like to write with. I like fountain pens and mechanical pencils. You seem to prefer graphite pencils, and guess you probably prefer ball pens ;)
I don’t understand the need for Ctrl-C/V, when manually copying the text exists. I know it’s snarky, but that’s the level of difference we’re talking about here. Or imagine, to delete a line, someone Right Arrows 50 times, then backspaces 50 times, instead of using the shortcut.