VIM is not an IDE, just an editor that helps you write faster
After you install 30 plugins and spend years of learning it you can come close to an IDE, but you lost a lot of time, for nothing.
The length of the post and the config file is working against you, is proof that is not easy to work with, and still not doing a proper job
If you would use an IDE in a proper manner (See Visual Studio or intelliJ) you will realize that your productivity is not about writing text (what Vim excels at), is at making your code work in the real world. Is more about development and less about being a type writer.
If you write books, articles or pseudocode Vim is the best tool I agree, but
..
the devs usually need to do DB queries, work with env tools, debug, see static analyzers warning, deploy dockers, run automatic tests, do merges, do huge refactoring that touches many files, find the "blame" on a bug, and so on (without writing or remember CLI commands or wasting time to setup the IDE).
Just saying, as a "director" you should appreciate productivity and do not make "feels like home" decisions for work projects. Do not confuse "what I like to do" with "what I have to do, as a professional".
By not using the proper tool, that gives you the fastest and most productivity you are wasting your employers money, so you are not being professional, you are just selfish.
B.G. ..... My subjective opinion: you are bore and hysterical. It is a fact. And all about what you find fault with the author of the article applies to your claims. All this is subjective, even your praised productivity.
I'm sorry but this statement is ludicrous. Productivity can indeed be measured, but the metrics you choose to measure are completely subjective.
That's somewhat besides the point, but coming from someone who seems downright angry that someone else presents subjective fact as the truth, your assertion is beyond hypocritical.
More importantly, it's absurd to argue that vim is inherently less productive than using any IDE. I keep hearing how vim users are preachy and judgmental, but I have never heard anything from a vim user as dogmatic, condescending, ignorant or absolutist as anything you've said in this thread.
I do a little bit of a lot of things. Some of those things are code. I enjoy thinking about how the world and technology interact, and how technology affects the way people interact with each other.
This, so much. I downloaded VSCode, used a clean GUI to install a few plugins, and I was developing nodeJS in minutes. That vimrc convinced me to never use the editor for anything serious.
Chocolate and movies are indeed a matter of taste, but productivity is not (also note that 'feeling productive' and 'being productive' are two different things).
Of course, these kind of discussions tend to spiral into the following, myself included :-)
the devs usually need to do DB queries, work with env tools, debug, see static analyzers warning, deploy dockers, run automatic tests, do merges, do huge refactoring that touches many files, find the "blame" on a bug, and so on (without writing or remember CLI commands or wasting time to setup the IDE).
I can do pretty much all of that in Vim with only a handful of plugins and little configuration. Also of note I've been in the biziness for roughly 7 years and have never had to deploy a container. 🤷🏼♂️ YMMV
Well I partially agree with you.
As I use NeoVim for all my dev purposes, earlier I used to use Jetbrains' GoLand with vim plugin, I couldn't feel much difference as long as productivity is concerned. Only reason I shifted to NeoVim was so that I don't have to use mouse, and I was too busy to learn Jetbrains' shortcuts.
I was able to replicate most functionalities... debugger you say? yes that is one major caveat in Vim or Neovim, etc. but I was able to successfully integrate that too in vim.
I have heavily customized init.vim (not too many plugins, around 10-15) and I can work very fast while doing my work.
What I'm trying to say is,
Vim alone --> just an editor
Vim with right set of tools (I don't mean plugins here) --> a Development Environment, only difference is they are not integrated, hence not an IDE.
Now I'm not any pro or something like that, but the works that I have done till now, I can tell I was more productive with NeoVim with conjunction to some other tools when compared to an IDE.
VIM is a tool, every developer is entitled to its opinion and preference, VIM might not be the right fit for all stacks or all applications but I have successfully use it to work as you mention for writing, python development, elixir/erlang development.
IntelliJ is great and I use it for other kinds of development (ionic for example); I find the knee jerk reaction to the size of configuration file a bit risible, the configuration file as shared has support for several languages, stacks and some of my personal customizations.
Finally, I find that the ad hominem attack on the last part of your reply actually subtracts from what was actually some valid points on your argument.
I just wanted to raise awareness on "VIM priests" that spread their false gossips around, I probably sound more passive-aggressive then it should.
You just "forget" to mention that it is a personal preference, and state that "Vim is the perfect IDE" (for me?!), knowing in fact that is not even an IDE and not perfect. You "forget" to mention that you spent maybe years of being prolific, where in IDE's most of the things "just works".
VIM is great when you have many small scripts/projects, or you alter big projects with minimal invasion, edit big files, or you are a sys admin, or ...(insert here a lot of stuff you didn't mention), but ....
It is "a common trap" that I've seen are with web dev juniors, they usually:
find a post like this
decide to try VIM and like it
they are getting very good at coding (typing fast,and moving around the document)
they have the false productivity feeling (the amount of code != solving more business problems)
they advance to bigger projects (as in scope and LOC count), and hit some walls. Then invest more and more time in their VIM skills and configs, and in the end being less productive.
This combined with the fact that people hate change, leads to bigger problems once the developer gets involved in bigger and more complex projects.
I just want to make things clear for the juniors and next generation of developers to make a big difference between "personal preferences" and "best tool for the job", and posts like this doesn't help at all.
I tend to agree with BG. Tooling becomes vastly important when working with larger and more complex codebases. The kind of code analysis provided by actual IDEs simply cannot be replicated in Vim no matter how it's customized.
Vim is great, but Vim is ultimately just a powerful text editor. BG is correct in that the anti-IDE stance is alluring for junior devs, providing false machismo in the absence of experience and well-honed skills.
We really need to change the way we talk about Vim. Here are my suggestions:
Stop comparing it to emacs. They are vastly different things.
Let's distinguish Vim "the concept" from Vim "the application."
What's important here is Vim, the concept
Vim, conceptually, is mode-based text editing with consistent, highly optimized keybindings. The beautiful thing about vim-as-a-concept is that it's available in some form or fashion in nearly every IDE and text editor.
In my line of work, I've seen little to no benefit with static analysis. I am working on a highly dynamic codebase. Sure, if your language is static its great, but I really don't see this as being a reason for not using VIM. I've actually seen VIM autocompletion be more accurate than IDE's (for newer languages such as Rust).
wow ok, your team is great then! I was part of teams that didn't used but we ended up regretting.
I usually saw linters solving a lot of (very small) problems in large teams and projects, like (forces a coding standard, find small bugs like forgetting to type a var or forgetting a switch default, fewer git merges/conflicts) which leads to a better codebase in general (if you enforce the rules at commit/build).
As a sidenote linters are builtin in most IDEs so maybe you use them already, but only at a basic level.
We use eslint (for the older projects, a combination of jshint and jscs). The plugin I use for vim (ale) works with pretty much any kind of linter I've encountered.
This isn't the sort of static analysis I'd expect from and IDE though, this is what I'd expect from any kind of programmers editor (vscode, sublime, etc). What I meant by static analysis is the ability to goto definition, display documentation, refactor, etc. This is the sort of stuff which doesn't work consistently enough with our codebase to even bother trying.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
dev.to where is the dislike button? :/
VIM is not an IDE, just an editor that helps you write faster
After you install 30 plugins and spend years of learning it you can come close to an IDE, but you lost a lot of time, for nothing.
The length of the post and the config file is working against you, is proof that is not easy to work with, and still not doing a proper job
If you would use an IDE in a proper manner (See Visual Studio or intelliJ) you will realize that your productivity is not about writing text (what Vim excels at), is at making your code work in the real world. Is more about development and less about being a type writer.
If you write books, articles or pseudocode Vim is the best tool I agree, but
..
the devs usually need to do DB queries, work with env tools, debug, see static analyzers warning, deploy dockers, run automatic tests, do merges, do huge refactoring that touches many files, find the "blame" on a bug, and so on (without writing or remember CLI commands or wasting time to setup the IDE).
Just saying, as a "director" you should appreciate productivity and do not make "feels like home" decisions for work projects. Do not confuse "what I like to do" with "what I have to do, as a professional".
By not using the proper tool, that gives you the fastest and most productivity you are wasting your employers money, so you are not being professional, you are just selfish.
B.G. ..... My subjective opinion: you are bore and hysterical. It is a fact. And all about what you find fault with the author of the article applies to your claims. All this is subjective, even your praised productivity.
I apologize for my english - google translate.
"Stay hungry ..stay foolish.". Steve Jobs.
Nope sorry, productivity can be measured, and the time you invested to reach that level.
Also my claims can be easily verified after one week of Vim.
sorry, client satisfied can be measured only
I'm sorry but this statement is ludicrous. Productivity can indeed be measured, but the metrics you choose to measure are completely subjective.
That's somewhat besides the point, but coming from someone who seems downright angry that someone else presents subjective fact as the truth, your assertion is beyond hypocritical.
More importantly, it's absurd to argue that vim is inherently less productive than using any IDE. I keep hearing how vim users are preachy and judgmental, but I have never heard anything from a vim user as dogmatic, condescending, ignorant or absolutist as anything you've said in this thread.
Well stated and to the point.
This, so much. I downloaded VSCode, used a clean GUI to install a few plugins, and I was developing nodeJS in minutes. That vimrc convinced me to never use the editor for anything serious.
Linux, the whole environment, is your IDE. Vim is just one part of it.
Ha, these kinds of comments always baffle me...
Your comment can be summarized as:
It's like telling someone "No, you shouldn't like chocolate", or "Your favorite movie is wrong".
That is the problem, he didn't specified it is a personal preference, he said it as an absolute truth and other people can make wrong decisions.
Wow great insight
I actually wasted a lot of time in this stuff. Your insights. are very useful to me
Chocolate and movies are indeed a matter of taste, but productivity is not (also note that 'feeling productive' and 'being productive' are two different things).
Of course, these kind of discussions tend to spiral into the following, myself included :-)
I can do pretty much all of that in Vim with only a handful of plugins and little configuration. Also of note I've been in the biziness for roughly 7 years and have never had to deploy a container. 🤷🏼♂️ YMMV
where is the dislike button?
VIM is awsome, but not for everybody
Correct
I am actually using Vim, my point is that title of the post should be "Vim is the perfect IDE ... for me".
Well I partially agree with you.
As I use NeoVim for all my dev purposes, earlier I used to use Jetbrains' GoLand with vim plugin, I couldn't feel much difference as long as productivity is concerned. Only reason I shifted to NeoVim was so that I don't have to use mouse, and I was too busy to learn Jetbrains' shortcuts.
I was able to replicate most functionalities... debugger you say? yes that is one major caveat in Vim or Neovim, etc. but I was able to successfully integrate that too in vim.
I have heavily customized init.vim (not too many plugins, around 10-15) and I can work very fast while doing my work.
What I'm trying to say is,
Vim alone --> just an editor
Vim with right set of tools (I don't mean plugins here) --> a Development Environment, only difference is they are not integrated, hence not an IDE.
Now I'm not any pro or something like that, but the works that I have done till now, I can tell I was more productive with NeoVim with conjunction to some other tools when compared to an IDE.
^ This person is my favorite.
Adrian,
VIM is a tool, every developer is entitled to its opinion and preference, VIM might not be the right fit for all stacks or all applications but I have successfully use it to work as you mention for writing, python development, elixir/erlang development.
IntelliJ is great and I use it for other kinds of development (ionic for example); I find the knee jerk reaction to the size of configuration file a bit risible, the configuration file as shared has support for several languages, stacks and some of my personal customizations.
Finally, I find that the ad hominem attack on the last part of your reply actually subtracts from what was actually some valid points on your argument.
I just wanted to raise awareness on "VIM priests" that spread their false gossips around, I probably sound more passive-aggressive then it should.
You just "forget" to mention that it is a personal preference, and state that "Vim is the perfect IDE" (for me?!), knowing in fact that is not even an IDE and not perfect. You "forget" to mention that you spent maybe years of being prolific, where in IDE's most of the things "just works".
VIM is great when you have many small scripts/projects, or you alter big projects with minimal invasion, edit big files, or you are a sys admin, or ...(insert here a lot of stuff you didn't mention), but ....
It is "a common trap" that I've seen are with web dev juniors, they usually:
This combined with the fact that people hate change, leads to bigger problems once the developer gets involved in bigger and more complex projects.
I just want to make things clear for the juniors and next generation of developers to make a big difference between "personal preferences" and "best tool for the job", and posts like this doesn't help at all.
Please keep in mind that everything you've said so far is anecdotal. Others, such as me, may have different experiences.
I tend to agree with BG. Tooling becomes vastly important when working with larger and more complex codebases. The kind of code analysis provided by actual IDEs simply cannot be replicated in Vim no matter how it's customized.
Vim is great, but Vim is ultimately just a powerful text editor. BG is correct in that the anti-IDE stance is alluring for junior devs, providing false machismo in the absence of experience and well-honed skills.
We really need to change the way we talk about Vim. Here are my suggestions:
Vim, conceptually, is mode-based text editing with consistent, highly optimized keybindings. The beautiful thing about vim-as-a-concept is that it's available in some form or fashion in nearly every IDE and text editor.
"vim-as-a-concept is that it's available in some form or fashion in nearly every IDE and text editor." ... and browser.
In my line of work, I've seen little to no benefit with static analysis. I am working on a highly dynamic codebase. Sure, if your language is static its great, but I really don't see this as being a reason for not using VIM. I've actually seen VIM autocompletion be more accurate than IDE's (for newer languages such as Rust).
I am very curious in what languages/line of work there are no benefits for static analysis, can you give some examples?
Javascript - we use dependency injection heavily.
wow ok, your team is great then! I was part of teams that didn't used but we ended up regretting.
I usually saw linters solving a lot of (very small) problems in large teams and projects, like (forces a coding standard, find small bugs like forgetting to type a var or forgetting a switch default, fewer git merges/conflicts) which leads to a better codebase in general (if you enforce the rules at commit/build).
As a sidenote linters are builtin in most IDEs so maybe you use them already, but only at a basic level.
We use eslint (for the older projects, a combination of jshint and jscs). The plugin I use for vim (ale) works with pretty much any kind of linter I've encountered.
This isn't the sort of static analysis I'd expect from and IDE though, this is what I'd expect from any kind of programmers editor (vscode, sublime, etc). What I meant by static analysis is the ability to goto definition, display documentation, refactor, etc. This is the sort of stuff which doesn't work consistently enough with our codebase to even bother trying.