Skip to content

So, I’ve been using gedit this whole time

November 18, 2016

This is my coming out. I’m 31. I’ve been programming since I was 16, but all this time, I’ve never learned how to use a “proper” text editor.

It’s probably because as a teenager, I grew up with Windows 98, and on that platform, back then, command-line tools were very much second-class citizens. In university, I was introduced to Linux and somehow, over the years, I became hooked. I spent a total of 11 years in university, and over that course, I probably wrote over 400K lines of code. Most of it on Linux, and most of it using a text editor called gedit.

It’s the GNOME text editor. Its noteworthy features are syntax highlighting, and the ability to have multiple tabs open at once. It’s a fairly shitty text editor. It will freeze up if you try to open a text file more than a few hundred kilobytes, or with lines that are too long for it to properly digest. If you were to think of emacs as a sushi meal prepared by an experienced chef, then you could think of gedit as a microwaved bowl of ramen with a half cup of sriracha sauce dumped on it. I had the ramen right here at home, no cash on hand, and well, I was hungry.

I think the problem is, in university, there was never any class that was really about teaching us how to properly and effectively use tools. I learned about programming languages, operating systems, compiler design, and all those wonderful things, but all this time, I was never given the opportunity to sit down and think about the tools I was using. The craftsmanship of programming, so to speak. I started using gedit because it was the default on the Linux distro my university ran at the time. I stuck with it because of habit.

During my undergrad, we were given assignments with tight deadlines. We worked our asses off. Some semesters, I remember having as much as 40 hours of homework per week. Needless to say, there was a lot of pressure. Pressure to get things done quickly given tight assignment deadlines, I didn’t really feel like spending 10 or 20 hours familiarizing myself with vi or emacs, or dealing with people who would tell me to go RTFM (Read the Fucking Manual). I went with gedit because it was intuitive and comfortable, as shitty as it was.

At my current workplace, we run macOS, and well, while there is a port of gedit (not even kidding), it’s a fairly miserable experience. The macOS port of gedit is like one of those freak creatures in a horror movie that begs you to pkill -9 it. Not knowing where to run, I started using the GitHub atom editor. It’s alright, but like gedit, it has its annoying quirks.

I’m 31, and I can’t help but want to take a step back. I don’t know how to use vim, but I think I’d like to learn. I can appreciate that a lot of thought was put into its design. It’s not a gimmicky gadget, it’s a powerful tool: a programmer’s text editor. I’m trying to convince myself that the time investment is worth it. At the very least, I can appreciate that vim is much more cross-platform, and stable across time, than any other text editor I’ve ever put up with.

From → Programming

25 Comments
  1. Miguel permalink

    I think you are overthinking it. Atom is indeed a good text editor. I do not think you actually need anything else to write text. If at some point you start using ssh to remotely access a computer via console to modify a text file then, yes, vim would come in handy. Until then, Atom seems like a reasonable choice. Just do not forget to install plugins so that it correctly highlights syntax for he language you are using.

  2. I am not very surprised with your experience. Most engineers and researchers I have seen stick with the tools they have been using for a long time. In my last summer job, I was pleasantly surprised to see that a PhD student, expert on design of concurrent data structures, did all his mostly C++ coding on Notepad++. Another PhD student, my officemate for a few months, still does most of his coding on gedit with syntax highlighting turned off. Among engineers, in my previous full-time job I noticed over 90% engineers using vim, but without any plugins or automation. Different reasons.

    I personally started using vim only 2-3 years ago and still am continuously learning how to make my usage more effective. For a complete beginner, `vim-tutor` is a really good 30-min hands-on introduction. Good luck!

  3. Ed Davies permalink

    If you like gedit but want something a bit better without the major culture shift to either of the big two you could try geany.

    I did use emacs quite a lot in the late 1980s/early 1990s (proper version on a VAX running Unix and a colleague’s mini implementation on DOS) but then didn’t use it for a few years and haven’t got back into it. I did install it on a Linux system a few years ago but it was, at least at that time on that particular distribution, so laughably ugly I didn’t bother to try seriously. Similarly, I’ve started on vim a few times but have always been distracted and never got far.

    I used gedit for a while then switched to geany and am now rather settled. I don’t think it’s done anything silly for a long time; the only way it’s caught me out is when I’ve forgotten to install the spell-check plugin.

  4. BBEdit for the Mac? But really, learn vim and the world is your oyster.

  5. “I’ve been using Vim for about 2 years now, mostly because I can’t figure out how to exit it.” (source)

    Particularly true on an OS that might soon drop support for the ESC key. ;)

  6. Dicebot permalink

    One can really start using vim in “gedit style” (just switch to insert mode and type things ignoring all the vim fancy) in an hour at most :) I have been using vim for years but still familiar with <5% of its features and don't think it is big deal – even bare minimum gives you universally usable editor which is available everywhere.

  7. Alice V. permalink

    This story reminds me of an old Czech-Jewish joke – “What if you were educated in some powerful tool? Where would you be today?” – “I’d code some e-shops somewhere in Mukachevo.”

    To get the point, please play
    https://youtu.be/YWRnIKhF-mc (turn on English subtitles)

  8. Space Ant permalink

    I also started with gedit on account of it being the default editor on Ubuntu. At some point I needed a more sophisticated editor and so I switched to geany, which hasn’t failed me since. As a bonus, it supports syntax highlighting for D (if there is a plugin for gedit that does that, I didn’t manage to find it).

    In my undergraduate studies we were told to use Eclipse for our C/C++ programming assignments, which is much worse than any text editor there is out there…

    Generally speaking, I think there are many important (to a programmer) sklls and topics that university doesn’t effectively teach. Not just tool usage, but also effective teamwork, version control systems, effective code testing and time management. Some of these may be specific to my personal experience and institution.

    • I don’t think it’s just your institution. Computer science curriculum, in my experience, kind of look down on programming. They view it as some necessary pain, but would rather remain in the abstract world of lambda calculus, Turing machines and algorithm analysis.

  9. hey maxime, i still use leafpad and nano. ive even written a small programming language based on python, called fig.

    if youre working with several modules, something tabbed would be better (like geany,) but vim is cool.

    • WarrenP permalink

      Nano is very nice. JOE is very similar to Nano.

  10. WarrenP permalink

    It’s nice to see people make “guilty admissions” because I feel that it’s a way of breaking apart the contempt culture in engineering. So good job, you.

    Programmers like me are prone to a kind of contempt culture, and one of our Shibboleths is knowledge of either VIM or EMACS. I’m actually working to get past that. Here’s my attempt at being honest about VIM and EMACS:

    1. A modern style editor like Atom, or Visual Studio Code can do things that VIM literally can not do, and does it with an easy to learn, open extensible design with a rich ecosystem of plugins.

    2. VIM is still an amazing text-slinging minimalist-UI editor, and well worth your time to learn. I chose VIM as my classic-Unix editor over EMACS because it fit my brain better. Please don’t choose VIM without also trying EMACS or you might not learn which one fits your brain better. Part of learning either one is creating a configuration dotfile (.vimrc) that contains your own favourite customizations. I recommend you do NOT simply download a prebuilt .vimrc or emacs config that is popular “out there on the internet” but rather let it grow up to contain only the minimal set of things you prefer. I turn physical tabs off, use 4 space indentation, and have some macros I find useful. That’s IT. Other people seem to have huge complex labyrinthine .vimrc customizations that I find too much for me. Again, ALL subjective things. But by diving in with a bare vim and building your own .vimrc, you will get the chance to tune it and find your own happy place.

    3. VIM and EMACS people who sneer at IDEs are not to be trusted. There are definitely lots of use cases for things like IntelliJ IDEA and Visual Studio, and Eclipse.

    4. I spent many years using an editor called JOE because it had the same keyboard shortcuts that I knew from Turbo Pascal for DOS, shortcuts that were more or less copied from WordStar, a DOS/CPM text editor from the early 80s.

    So, get Visual Studio Code or Atom which are available for Mac, Linux and Windows, and be happy. And on a Friday when you’re bored and SHOULD be writing some code or tests, play with VIM, and be happy too.

    I have about 10 editors and 5 IDEs on my computer. I’m quirky like that.

    Warren

  11. Learning an IDE that works for the language you are programming in can give huge benefits. I can’t live without the instant error checking with red underlines, the code navigation features, and integrated build and run tools of IDEs any more. Going back to vim is like using a hand tool instead of a power tool. Yes there times where the power tool won’t fit or isn’t available, and then I use a hand tool.

    For Python, pycharm. For JS, WebStorm. For C++ visual studio. For Java or Scala, eclipse or intellij.

  12. Kurt permalink

    I would be editor agnostic. I would use what ever development environment your project uses. Including editor. Also if you company is developing tools, you should always use the companies tools. For example if you groups is developing language ZZ, and another group is developing a integration of ZZ into an IDE like Atom, you should use that integration if at all possible. Not only will it test the new integration, you will come up with new features faster.

    One thing I have noticed is that different Editor/IDE environments affect coding style. For example many separate logical named files help an EMACS user while a VS IDE user cares far less.

    I also tend to find that programmers that insist on using a different build environment/editor then the rest of the group will duplicate a lot the effort to make it work.

    Having a favorite editor means having to port it where ever you go. When you move to a new computer system, the first thing that you have to do is install/port your favorite editor.

    -Kurt

  13. shaurz permalink

    For a long time I used KWrite, which is kind of like KDE’s version of gedit. Oddly enough they taught how to use vim in the Intro to Programming class at Leeds University. These days I mostly use my own editor that I wrote called Devo (github.com/shaurz/devo) but I still use vim a lot for administrative tasks (I find nano harder to use these days!) I never learnt any of the advanced vim features, it’s fine to use with a basic command set.

  14. This is a pretty nifty vim tutorial if you have not seen it:
    http://openvim.com/

  15. Omg. I love Gedit. My friends say I’m crazy. Hahaha They keep pushing me to try the Emacs / Vim side of the force -_-

  16. johnjoyce permalink

    I hope you found something by now. Vim lovers swear by it. Emacs is crazy.
    Sublime is sufficiently cross platform. But clearly the colors are off.

    I like Atom but don’t trust its non Mac like behaviors nor its Node underpinnings.

    TextMate is still great.

    JetBrains’ IDEs are prettier Eclipse with a cost.

    Try them all until one starts to get you working better. For me, that’s still TextMate.

  17. Hi, if you are on Mac then you absolutely have to try Textmate 2 for a general purpose editor! Version 2 is much better than 1, which has some annoying usability quirks.

    Xcode is getting there. Its a shame they abandoned V3 so quickly as the replacement has only now reached similar functionality. Or maybe try Eclipse; it is great for editing Python.

    Atom is just resource heavy and has memory leaks. It’s nice in theory but text editors shouldn’t need profiling. Useless for using on a battery. https://www.theregister.co.uk/2017/03/23/cursor_devours_cpu_cycles_ms_code_editor/

  18. The reason that Gedit is such a horror on macOS is mainly GTK+:

  19. It’s been five years since this post. Have you switched to vi (hopefully vim, nvim or emacs). I find nvim super nice, AFTER one has setup several plugins. The copy and paste still isn’t working well in my nvim. Strangely sometimes it works and sometimes it doesn’t, which makes it difficult to do an assignment in nvim, then copy and paste it into an web form for submission. I switched to using gedit for assignments. I changed the theme, it’s really nice. But I wish the auto indenting worked as well as it does on nvim.

Leave a reply to dobesv Cancel reply