A BLOG POST

Does VIM really make you a better developer?

I've been interested in Vim since 2018. Customizing and tweaking it so that I can find my "perfect" setup had been fun, however it was not easy and never ending process. I even took this as a better way to be a developer. But is it? Did it make me a better developer? And should you take the same path as me?

Does VIM really make you a better developer? image
chandrawijaya image
chandrawijayaPublished at   8/25/2022, 4:20:00 AM

Updated at 10/22/2024, 4:03:07 AM

Read  129 times

As many of you also use VSCode, I assume, thus I would like to talk about this matter comparing about them. However, this topic might not only relevant to VIM or VSCode users but to all developers especially those who use IDE.


VIM and VSCode are two popular choices among developers for text editors and integrated development environments (IDEs). Both have their own strengths and weaknesses, and choosing the right one for your needs can be a difficult decision.

VIM Flexing image
VIM Flexing

First, let's take a look at VIM. VIM is a well-known text editor among programmers, especially those using Unix operating systems. It is known for its speed and customization options, as well as its keyboard-based operation. VIM allows for a high level of customization through the use of plugins and configuration files, which can be very useful for developers who want to tailor the tool to their specific needs and workflows.


However, VIM also has its drawbacks. One of the main downsides of VIM is the difficulty of the configuration process. VIM requires manual configuration to activate its features, and this can be time-consuming and confusing for beginners. In addition, VIM does not have a built-in plugin manager, so developers have to manually install and configure plugins to add new features. VIM also lacks a graphical user interface (GUI), which can be intimidating for beginners and may require a certain level of familiarity with command line interfaces.


Configuring VIM would take much time and efforts from you. If you are a beginner, I would suggest to prepare your mentality, spare some time, and also energy to learn this tool. I darely say, it is not easy.

I agree that using VIM can certainly contribute to the overall improvement of a developer in several ways.

  1. First, VIM's fast command execution and keyboard-based operation can help developers work more efficiently and get more done in less time. This can allow them to focus more on their work and be more productive.
  2. Second, VIM's minimalist interface and lack of distractions can help developers focus more on their work and reduce mental fatigue. This can lead to better problem-solving and decision-making skills, as well as an overall improved ability to focus and concentrate on their work.
  3. Third, VIM's ability to be customized through plugins and configuration files can allow developers to tailor it to their specific needs and workflows, which can improve their overall productivity. This can allow them to work more efficiently and effectively, as they can set up VIM in a way that best suits their needs and preferences.
  4. Finally, the process of learning and mastering VIM can also enhance a developer's skills and knowledge. VIM requires a certain level of mastery to use effectively, which can help developers learn new skills and techniques. This can ultimately lead to a better understanding of their work and an improved ability to solve problems.

Learning VIM can certainly be a valuable addition to a developer's skill set, as it can provide them with a fast and customizable text editor that is suitable for a wide range of programming languages and operating systems.


However, it is important to note that using VIM alone will not necessarily make a developer better. It is up to the individual developer to take advantage of the benefits provided by VIM and continually strive to improve their skills and knowledge in order to become a better developer.

On the other hand, VSCode is a popular choice among developers due to its intuitive and easy-to-use interface. There are several advantages of VSCode compared to VIM:

  1. User-friendly interface: VSCode has a more intuitive and easy-to-use interface compared to VIM, which can be especially useful for beginners.
  2. Large library of extensions: VSCode has a large library of extensions that developers can install to add new features and functionality to the tool.
  3. Integrated debugger: VSCode has a built-in debugger that allows developers to easily find and fix errors in their code.
  4. Syntax highlighting: VSCode has syntax highlighting that makes it easier to read and understand code by highlighting different elements in different colors.
  5. Integration with Git: VSCode has integration with Git, which allows developers to easily manage their code repositories and collaborate with other developers.


However, VSCode also has its drawbacks. One of the main downsides of VSCode is its larger size, which may require more storage space on your computer. VSCode may also not be as fast as VIM in executing commands, especially if you use many extensions that can slow down its performance.

In conclusion, both VIM and VSCode are valuable tools for developers, each with their own unique strengths and weaknesses. It's up to you to decide which one is the best fit for your specific needs and preferences. Don't be afraid to try out both and see which one works best for you. However, the most important thing is to choose a tool that helps you be productive and efficient in your work.

Stop IDE Debate image
Stop IDE Debate


I often see developers using VIM just to be seem cool, expert, or tech savvy without really make maximal use of it. This reason too brought me to a consideration in using VIM constantly in my environment, where my team do not use VIM.


Using VIM in this condition can be very challenging. I know because I experienced it. One of the main pains is the difficulty of collaboration. VIM is designed to be used primarily by a single user, and it does not have built-in features for collaborating with other users in real-time. This can make it difficult for team members who are not familiar with VIM to contribute to or review code written in VIM.


Secondly, VIM has a minimalist interface and operates primarily through the use of keyboard shortcuts, which can be confusing and intimidating for users who are not familiar with it. This can make it difficult for team members who are not comfortable with VIM to effectively use it for their work.


When it comes to code review with my team members, sometimes I have to use and type using their computer, in their IDE. This lead to a confusion because I'm primarily using VIM and very familiar with the keyboard shortcuts, my shortcuts. However, these shortcuts do not exist in their IDE and it causes a slower process reviewing the code just because I typed incorrectly the whole time!


With that said, my take on this is choose what best for you for your productivity and efficiency work. These arguments between developers comparing both of them and trying to win one of another will not stop. Don't decide based on that idealisms.


To close this, Theo Browne, the CEO of Ping Labs, posted a inspirational video related to this topic. If you have more time, please watch this.

My Dev Environment Might Surprise You...

Nowadays, many developers share their ready-to-use VIM configurations online. There are many websites and online communities where developers can share and discuss their VIM configurations, as well as get help and support from other users.


One of those that I found useful is kickstart.nvim. It is written by TJDeVries, one of the core maintainers of Neovim. And to make it short, this video explains clearly what it is and how you can use it.

Effective Neovim: Instant IDE


Sharing ready-to-use VIM configurations can be very useful for developers who are new to VIM or who want to customize their VIM setup but are not sure how to do so. It can also be a good way for developers to learn about different configurations and techniques used by other developers.


However, it's important to be cautious when using someone else's VIM configuration. Make sure to read and understand the configuration files before applying them to your own VIM setup, as they may contain features or settings that you do not want or need. It's also a good idea to backup your current configuration before applying a new one, in case you need to revert back to your original setup.


Using ready-to-use VIM configurations shared by other developers can be a helpful way to customize your VIM setup and learn about different configurations. Just be sure to be cautious and carefully read and understand the configuration files before applying them to your own setup.

This is a worth mentioning of ready-to-use config based on Neovim that I'm currently using. Astronvim is a popular ready-to-use VIM configuration that is widely used and shared by developers. It is a comprehensive configuration that includes many useful features and customization options for VIM.

Some of the features included in Astronvim are:

  1. Syntax highlighting: Astronvim includes syntax highlighting for a wide range of programming languages.
  2. Automatic indentation: Astronvim includes automatic indentation that helps with formatting and organizing code.
  3. Code completion: Astronvim includes code completion that suggests code snippets and helps with coding faster.
  4. Linting: Astronvim includes linting that checks for errors and warns about potential issues in code.
  5. File explorer: Astronvim includes a file explorer that allows developers to easily navigate their file structure and find files.


In addition, Astronvim is regularly updated and maintained by its developers, ensuring that it is always up to date and includes the latest features and fixes. It is also widely used and supported by the VIM community, making it easy for developers to get help and support when using Astronvim.

Reactions


Comments


More articles

If you enjoyed this article, why not check my other posts?

Docker: The Key to Consistent and Reliable App Deployment image

Docker: The Key to Consistent and Reliable App Deployment

0 viewed

Published at 1/4/2023, 11:51:00 AM

GraphQL now and thank me later! image

GraphQL now and thank me later!

0 viewed

Published at 9/12/2022, 4:36:00 AM

Containers vs VMs? What differs? image

Containers vs VMs? What differs?

0 viewed

Published at 11/22/2022, 6:10:00 AM