I'm teaching a course on parallel and distributed programming where the programming environment is the head node of a Linux cluster, which we're connecting to using VNC. We're using the classic "text editor and makefile" development environment rather than an IDE, so the choice of text editor has been on my mind lately.
Years ago, I was an Emacs guy, but I abandoned that particular ship when I started to develop wrist problems.
In grad school Vim was my editor of choice. I gave it a try again, and there are definitely things I like about it. Running an arbitrary filter process on a region of text bounded by a regular expression search is really cool. However, its model for switching between buffers is appallingly primitive. If Vim had a sidebar displaying a list of open files, it would probably be my favorite editor. But it doesn't.
Oddly enough, my preferred editor in recent years has been Gedit. It's very basic, but it's clear that its developers actually thought about usability. The gedit-plugins package in Debian/Ubuntu provides some few useful extensions. Plus, its default syntax coloring scheme is the same as Vim's, which to my eyes is simply the correct one. (Comments are blue. That's just the color they are.) Unfortunately, there is no support for word completion. There seem to be a few plugins that have provided support, but there's doesn't seem to be a Debian package for any of them, and I wasn't encouraged by the complicated list of instructions for installing any of them locally.
After a number of web searches, I stumbled upon Geany. It's a lightweight programmer's editor with a few IDE-like features. I've been using it for a few days, and it's more or less exactly what I was looking for. It has a side pane and word completion, but the UI is fairly minimal. I haven't really used the IDE features (such as compiling from within the editor), but happily those features aren't imposed on you in any way. Most importantly, there was a Debian package available through APT.