Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create should-you-learn-vim-as-a-developer-in-2020.md #6849

Merged
merged 1 commit into from
Mar 31, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions TODO1/should-you-learn-vim-as-a-developer-in-2020.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
> * 原文地址:[Should You Learn VIM as a Developer in 2020?](https://medium.com/better-programming/should-you-learn-vim-as-a-developer-in-2020-75fde02c5443)
> * 原文作者:[Joey Colon](https://medium.com/@joey_colon)
> * 译文出自:[掘金翻译计划](https://github.com/xitu/gold-miner)
> * 本文永久链接:[https://github.com/xitu/gold-miner/blob/master/TODO1/should-you-learn-vim-as-a-developer-in-2020.md](https://github.com/xitu/gold-miner/blob/master/TODO1/should-you-learn-vim-as-a-developer-in-2020.md)
> * 译者:
> * 校对者:

# Should You Learn VIM as a Developer in 2020?

![Photo by [Helloquence ](https://unsplash.com/photos/5fNmWej4tAA)on [Unsplash](http://unsplash.com)](https://cdn-images-1.medium.com/max/2000/1*6RF4SWv3nDsFlX1vDzc8Nw.jpeg)

## Introduction

The discussion of which text editor, which shell, or which OS you use has always been a hot topic for developers to chime in on. I’m sure we all know that one person who is crazy over VIM. I’m sorry to disappoint you, but this post will not be glorifying VIM itself. Instead, this post will be used to discuss why I decided to learn VIM, what VIM solved for me, what it didn’t, and most importantly, should you learn VIM?

A brief introduction about my programming background as it will give context. I started programming seriously around late 2018 after deciding to pursue it for a career path. Before then, I would often create (pretty bad) scripts for different games I played and run a few websites/game servers as side hustles. Since taking up programming as a career, I have dabbled in several languages, but I find myself doing a lot of work in the JavaScript ecosystem. Now that we’ve got intros out of the way, let’s get started!

![](https://cdn-images-1.medium.com/max/2400/1*djasmygBIiqOqTCnXUehxA.jpeg)

## What VIM Didn’t Solve for Me

VIM didn’t make me a better software engineer. I will say it again: Learning VIM does not make you a better software engineer. At its core, software engineering is agnostic of what shell/editor/OS you develop on. I believe that too many people implicitly have this notion that you need to use X or Y in order to be a “good” software engineer.

As a newcomer in this industry, I find the general “____ OR BUST” mentality to be cringe and elitist. We’re all creating solutions to complex problems. The toolkit you use to write your solution doesn't make you a better or worse developer.

## Why I Decided to Learn VIM

#### Building habits

Since I’m a relatively new programmer, I have a lot of room for areas of improvement, and workflow is definitely one of those areas. Before learning VIM, I was never really a person to utilize hotkeys/keybindings to my advantage. I was extremely reliant on using my mouse. When being pitched the typical VIM spiel, the whole “keep your hands on the keyboard” point appealed to me since I have always been a fast typer. I knew in the back of my head that learning VIM wouldn’t lead to any sort of negatives.

#### Limitless potential

When debating if I should learn VIM, I decided to watch a tech talk about it, and the single major takeaway I had from it was that people can use VIM for years and still be improving their usage on the tool.

This hinted at a few things for me. First, picking up VIM is a huge time investment, but more importantly, you’re always finding ways to level up your craft. As someone who’s a pretty new developer, I want to parallelize my efforts when I can. This is a reiteration of my previous point, but when I incorporate different tools (VIM in this case) into my development workflow, I give myself the ability to kill two birds with one stone.

#### I no longer need nano on my Linux servers

This is a bit of a random tidbit, but coming from someone who has worked in a Linux environment remotely over the years to run a few sites/servers, not knowing VIM was definitely annoying. If I needed to ever modify a config file for a service I was running on a box, it would require me to install nano as my knowledge with VIM was `:q!`.

## My Work Environment

In my day-to-day, I utilize VSCode with the VIM plugin. I’ve tried installing VIM plugins such as coc.nvim and developing through the terminal itself, but it wasn’t something I was crazy over. I always really enjoyed the experience of writing code on VSCode. Using the VIM VSCode plugin gives me the same experience of running VIM, but I get to reap the benefits of the ecosystem VSCode provides to me. For me, I get the best of both worlds when utilizing this setup.

## Conclusion

Should you learn VIM? If you don’t have any sort of habit/strict keybindings for yourself, I think you should at least give it a try. The fact that I had no “comfortable” keybindings/workflow established for myself made learning VIM appealing to me. After learning VIM, I can say that I have gained a new foundation that I am only building off of.

It took me about two weeks of lightly running through vimtutor before I felt comfortable enabling the VSCode plugin. From there, it took another week of development time to innately navigate through code using the keybindings through muscle memory. The way I see it is I was coding either way for that time. I was able to get more value for my time by picking up VIM.

Though, I would like to reiterate that, at the end of the day, programmers are creating solutions to problems. Which keybindings/editor/etc. you want to use is entirely based on your preference. The speed at which you edit files is often not the bottleneck in your development work.

> 如果发现译文存在错误或其他需要改进的地方,欢迎到 [掘金翻译计划](https://github.com/xitu/gold-miner) 对译文进行修改并 PR,也可获得相应奖励积分。文章开头的 **本文永久链接** 即为本文在 GitHub 上的 MarkDown 链接。

---

> [掘金翻译计划](https://github.com/xitu/gold-miner) 是一个翻译优质互联网技术文章的社区,文章来源为 [掘金](https://juejin.im) 上的英文分享文章。内容覆盖 [Android](https://github.com/xitu/gold-miner#android)、[iOS](https://github.com/xitu/gold-miner#ios)、[前端](https://github.com/xitu/gold-miner#前端)、[后端](https://github.com/xitu/gold-miner#后端)、[区块链](https://github.com/xitu/gold-miner#区块链)、[产品](https://github.com/xitu/gold-miner#产品)、[设计](https://github.com/xitu/gold-miner#设计)、[人工智能](https://github.com/xitu/gold-miner#人工智能)等领域,想要查看更多优质译文请持续关注 [掘金翻译计划](https://github.com/xitu/gold-miner)、[官方微博](http://weibo.com/juejinfanyi)、[知乎专栏](https://zhuanlan.zhihu.com/juejinfanyi)。