Know Your Editor
Push past the normal defaults and use your editors to their maximum

There are many editor's and IDE's out there that people can use. I don't want to say what you should use, that's up to you. What I am going to say is use their features to your advantage.  For me there are two main editors I use JetBrains (GoLand, Pycharm) and vim. The JetBrains IDE's are mostly the same but targeted at the different languages so I kinda class them as being the same. There is two types of editors I have list here one is a full fledged IDE which is heavy on resources but gives a lot of powerfully features. And there is vim which is a light weight but powerfully terminal based editor.

Terminal Based Editors

Let's talk about the latter first, the terminal based editor (vim, emacs, nano, what ever). Why use them? Why be comfortable in them? Main reason they are everywhere, if you only have terminal access to a machine your going to been to know the basics in one of these editors. I am not saying you need to have zen level of mastery with these eidtors just a good understand of some common functions. So I use vim and the most powerfully feature I use is been able to record macros on the fly. Reading a log file with ten's of thousand's entry lines, macros really help filter out what you don't what. There is an other for greater reason for using an editor that has been around for years, is terminal based and has a low resource requirement, and that's opening stupidly large files. What is a large file you ask how about a json file that is over 5GB in size and more than forty million lines long. To make things worse your not sure what format it is going to be in till you open it. In this case you do not get many options for how your going to edit that file. The json parser in FireFox said nope and crashed just like GoLand and vsCode.

My suggestion is to know one terminal based editor and how to do the basic commands. Know how to edit, search and modify files using the editor and try to know some of the move advanced features such as recording macros in vim. This will allow you to work when your main tooling is letting you down.

IDE's

IDE's are the bigger version of the editor and where most people will spend most of there time. They are also much heavier and use way more resources. Opening times can be slow but if your like me when is it ever actually closed. All the features that they have you might be lucky if you use 10% of them.

No the feature front I am not a fan of IDE's where you have to install plugins for every little thing. That means I am not a fan of VS Code, I do use it for some things but it is not my go to. There is also the case that people install plugins to get features that is already built in to the application. In the case of the jetbrains products they include the batteries which I like. It makes it very fast to get set up and productive.

Getting back on track why is know the what is possible with the IDE so important. One of the project that I work has a lot of logs that is being streamed out will the application is running. This can be hard to keep up with but I have the IDE configured to save a copy of these log to the /tmp folder every time I run the application. This makes it super easy to debug past events with out ever thinking about am I overriding logs from a past run. There is also the easy in which the IDE can be configured to run the code on a remote system even with the files locally. I tried setting this up lately for a side project which uses the GPIO pins on a raspberry pi.  It was so simple I don't know why I didn't do it earlier.

Conclusion

The point here is knowing what you can and can't do with your tooling will let you pick the correct tool of the job. There is no prefect tool some work better that others at different tasks. I like working in vim it lets me think easier, it keeps out of the way. While the IDE lets me get work done fast. There will always be a place for both and understanding how to get the most from them is why you should know you editor.


Know Your Editor
Jim Fitzpatrick 21 June, 2021
Share this post
Our blogs
Archive
Sign in to leave a comment
Projects are not just the end result
Looking at git-grab and it's Makefile as an example