As developer start adopting more and more programming languages. The number of IDEs we are working in increases as well. It is annoying (if not painful) to pick up new shortcuts to do just basic things like navigating around the code. My approach to that is to use Adapter Pattern.
Adapter Pattern is one of the most popular design pattern when we design systems. It helps us to remove the dependencies to the things that we don’t have control over. In real life, you will use adapter if you purchase electronic or digital products overseas. More often than not, the plug is not compatible to your wall outlet. The following is a typical situation illustrated.
In stead of replacing your wall outlet or tinkering your plug. An adapter is a decent solution to this issue. But when it comes to the editors and IDEs, same rule applies.
I use the following IDEs very often
- Visual Studio , because I am a .NET developer for years.
- Intellij IDEA for building Andriod apps and Data Science experiments.
- XCode for iOS apps.
- WebStorm for web development.
- Atom as alternative to notepad.
- Brackets as an alternative to WebStorm.
Anyway, you get the idea, right? At the beginning, I was trying to sync the shortcuts the same as Visual Studio settings. Very quickly, I find that was nearly impossible because I hit various limitations. Then I was trying to find a better solution – using Vim.
I started to experiment Vim in Visual Studio since May 2014. It was reeeeeally hard to get used to at beginning, just like any action game you are playing. How far can you go when you started playing Flappy Bird? But after a few days, Vim motions become something native to me. So I got the confidence to keep going. After a few months, I didn’t give up. Which was great. So I learnt something new and I was happy about it.
The good thing about Vim is that I can switch to different IDEs so smoothly because most IDEs do have native Vim support or via 3rd party plugin. That is what I called Editor Adapter – instead of changing shortcuts of IDEs, using a adapter as a solution. The another benefit is I can make simple changes to the files without leaving the shell environment.