using vim

April 24, 2023

Yesterday I submitted my very last computer architechure project. I also realized I had done the entirety of the course in vim. A lot of people question me for coding in Vim so I thought to make a short testimony to it as it served me well this semester.

I was introduced to vim by the same friend who introduced me to linux. Before, I used VSCode. Vim, however, was more convenient due to the fact that we needed to ssh into lab computers to work on/submit our projects. At first, using vim was a little odd, it is quite unlike the IDEs I was used to— for one, this was a simple text editor, so no picking up on compile errors. For this reason specifically, I grew very good at writing code with few typos and mistakes on my own, thanks to the lack of red underlining and warnings a typical evironment would provide.

Another thing I really enjoyed about the text editor: the keybinds! Sure it took some time getting used to, but it had way more functionality. Navigating lines and copying or pasting blocks of code around was made way faster. My favorite feature had to be the marks, which allowed for conveniently jumping around a file without endlessly scrolling/searching for certain terms.

For these reasons and more, I used vim for the entirety of the semester. Of course, I still have the bad habit of using the arrow keys to navigate, and forget some of the keybinds from time to time, but overall, it was a great experience. However, there was certain things that irked me about vim, one of which being the horrendous default color scheme.

In comes neovim. I only recently set this up, but I'm already enjoying the improved design. I used a kickstart repository with some plugins built in, so I can now search files and switch between them pretty quickly. Also- I caved. I added some compile error checking, although it's not instantaneous. I'm planning on adding more plugins, most likely for filetrees and split windows.

This post is a little bit technical for a thoughts page, so I might as well add the significance of this new development. I've noticed that often it can be more convienient to stick to one method or ideaology, as I was with the IDE I used previously (VS Code). In the field of computer science, however, change is something you will certainly encounter. A lot of changes occured in my life recently, from changing operating systems to changing code editors to changing schools. These external changes force one to consider internal changes as well. Maybe sticking to a norm is not always what's best for me. Experimentation can be highly beneficial, or at least freeing. After I make the first difficult leap into the unknown, I find the change refreshing, almost addictive. It's always fun to play with unexplored software.

All this sentiment over software might seem like overkill, but I think finding lessons in everything is fun. That's is for this post.