When I first started developing I thought that I needed a nice GUI editor to be efficient. The first editor that I used was Visual Studio. It had some nice features and it worked very well for any .NET application I was building. After college I got a job doing PHP and I could no longer use Visual Studio. At the time I thought I needed a nice visual editor similar to Visual Studio. My thinking at the time was that it would help me become a better developer. The thought process was if I have to think about my editor I won’t be able to focus on the code. So I used Zend Studio which at the time was considered the best GUI editor for PHP. It had debugging built in too. I used it for my first year and then wanted something a little lighter weight. The machine I was on wasn’t all that great. I then switched over to Geany which is a lightweight text editor. It did not have debugging built in or any other crazy extensions. It was a step in the right direction for me. After sometime and some advice from other senior developers I decided to give Vim a try.
I had heard of Vim before and always thought it’s way to complex for an editor. Who wants to have to think what command to type just to edit a file. I thought if these other senior level developers were using it there must be some type of advantage to using it. After all they have been programming much longer than me and wouldn’t use a tool if it didn’t make things easier. After pounding away on it for a couple of weeks I noticed something. I was thinking less and less about what commands to use. I noticed that a lot of commands were happening just from muscle memory. I also noticed that I was able to do a lot more with a lot less. Vim takes up hardly any memory so even on a crappy server I was able to edit files easily without much hassle. Weather it’s Ruby on Rails or PHP code I am editing I use Vim. The thing I have noticed is each day even after using it for two years I learn a new trick that makes editing files even faster. A lot of developers see Vim as a unneeded challenge. I see it as a small challenge for a large number of benefits. Even if you don’t want to be a full time Vim user I would encourage you to at least try it long enough where you don’t think about the commands. At least the basic ones. I know Vim is not for everyone and I do know other developers who have used it and know how to use it but don’t like it.