Not only that it can be used to compile programs directly, it's a bit more than just a basic editor. It has tabs, syntax highlighting, plugins, great line bookmarks, a function/symbol sidebar, autocomplete, multiline edit, color schemes, powerful search/replace and a sound way to wrap long lines.
Via plugins, it has a minimap, it can go directly to functions (ctrl + click on the function call), has a git integration (showing added/deleted lines not commited yet), highlight of the current variable, pretty print xml and much more stuff I do not use, like a workplace.
It's no nano (I use and like nano).
A bit more seriously, the things that Geany has that Nano doesn’t are a GUI and plugins. Personally, I consider that still a text editor, although I’m sure someone could write a LSP plugin to blur the lines a bit…
The replace function though is a lot less powerful. Even if I give it the benefit of the doubt that probably there is a way to use regexpressions in an arcane syntax (because just entering them definitely does not work).
Though in general that exchange is typical for nano :) So many think it can do almost nothing and then are surprised when it can do so much more. Often included me. Like syntax highlighting, it was cool when I found out it can do that.
can you share your nano configuration?
But it was more to describe real tabs. I don't see them in nano, just a bar at the top with "[1/n] filename", and no tabs. Searching for nano and tabs does not help of course, and I saw nothing in the manpage. So it was a try to describe the kind of tabs geany has.
Also works in tmux - you can drag your splits to resize them, or select a tmux "tab" to switch to it. You can also select text and then do things with it, like search back in the scrollback for other occurrences, or copy it to the system clipboard. Right click even brings up an in-cli context menu.
can the thing differ between xyz in a comment, as the name of a class, as a field and as a local variable inside a method? I.e. if I write a class xyz with a field xyz and a method xyz() and that method contains the variable xyz used a number of times, will the thing be able to rename any single of those across the whole project without messing up?
If it can: it is probably an ide. If not: it is not an ide.
Is there any command-line text editor that people actually use to write in? My impression is that the only moderately popular ones are ed and sed and that people only use them to make specific edits to files they wrote the bulk of somewhere else.
As to CLI editors... I use cat all the time to make notes. Because it's straightforward. Firing up vim or emacs would trigger a mental context-switch (caused by screen redraw), while cat is a good CLI citizen --- it's the best thing to make quick notes with 0 distractions.
That's an alternative way of using it. And half the things you have in GUI mode stop working.
> Vim is a GUI too
Are you speaking about GVim? That's still really a terminal with Vim launched. You still can't have e.g. headings in documents rendered at a different font size than the rest of the content. You still have to deal with the nonsense of patched fonts to get nice-looking arrows with powerline. Sounds like TUI to me.
Sounds like you didn’t explore much, or try the plugins? It has an order of magnitude more functionality than nano.