Cem Keylan

To this day, I have tried lots of IDEs and text editors. Visual Studio, PyCharm, Sublime, Notepad++, Vim, Emacs, Pico, Atom, etc. The list goes on. I have even unironically used ed, and ironically used cat for a while.

I have settled down after years and years of “editor-hopping”. I now have 3 main editors that I use on a daily basis! Yeah, you have read it correct. I use 3 editors on a daily basis. Those are,

  • sed
  • vi (not vim)
  • emacs

Emacs

Emacs is a beast. Defining Emacs as a text-editor is wrong. It is a lisp interpreter, with text manipulation abilities.

Now, I do like the concept of Integrated Development Environments. It's a shame that all of them suck. With Emacs I can fine-tune everything according to my taste, install the packages I need, configure them the way I like. With IDEs you get some nice plugins, and a tiny bit of customization, but that's it. You get an environment limited by the vision of someone else. Not to mention that most IDEs are proprietary software.

I have stopped using Vim, because it is only meant to be a text editor. You can extend its features with plugins, but you can really see the impact with just a few of them. Vimscript is also really primitive, that's why people write plugins with Python, JS, and such. This further affects the speed of Vim. Most Emacs packages I have encountered are written in pure lisp. I have over 70 packages, yet my load time and overall speed is better than when I had Vim with 8 plugins.

Cons

  • It comes with too many unnecessary features: Emacs comes with multiple IRC clients, a mail reader, rss reader etc. I don't think they are badly implemented or anything, I would just prefer building up as I want to instead.
  • The defaults are not intuitive: Now, I haven't actually tried any of them, but there is a reason “Emacs distributions”, such as “Spacemacs”, “DOOM Emacs”, “Centaur” exist. The base of Emacs, even with its unnecessary features, is unintuitive and complicated.

  • Let's not forget that Emacs uses an ancient Lisp dialect.

Vi

I mostly use Emacs when I am dealing with projects. If my aim is to just make simple changes when I am on the terminal, I just pop up vi provided by busybox. I just like that it is fast and featureless. It barely gets the job done, and that's why I like it.

Cons

  • No syntax highlighting.: Syntax highlighting is an important feature for me but I have learned to live without it. Since I don't edit large files with it, this is not the biggest con.
  • Hard to configure: Busybox vi only has a limited featureset, which makes it hard to configure. It doesn't read an rc file, it uses the $EXINIT variable instead. Available options are limited. For example, you cannot convert the “tab” action to use space instead of tabs.
  • No visual selection support: Sadly, v/V isn't implemented in busybox vi.

Sed

I use sed for when I am making small changes to small files, because it is faster than opening a file, making a change, saving, and exiting. Using regular expressions are much faster and efficient at such things.

Cons

  • Risky unless you know what you are doing: Since sed is operated on regex, you need to be extra careful. You are running that regex on the entire file without an option to 'undo' (unless you have a sed that has a backup implementation).

I am terrible at desigining interfaces. I can't do anything that could possibly appeal to someone, not even me. The biggest effort I have put in was for the Carbs Linux website, and even that, is not really good enough for me. I can't do colourschemes as a person who has been into lectures about 'colour theory'.

I usually slap some 'dracula' to a program I am using (or a website I am building) and be like “yeah, this should do it”. My whole system uses the Dracula theme, because I can't come up with something of my own. Carbs Linux website is the only non-dracula webpage I have had, and it's colourscheme comes from Dylan's pywal.

CSS, I am even worse. I shared the exact stylesheet between my personal site and Carbs Linux with the only difference being their colourschemes. I just don't have the imagination to create my own CSS. The stylesheet was also compiled from many websites, especially Venom Linux's webpage. So that's not my creation either.

Maybe, someday, I will learn to produce pretty interface designs, but I am not close to that right now.