How does a text editor also act as a build system? Do they mean dependencies are automatically discovered and compiled? Or do they mean it integrates with a makefile where you still need to specify the dependencies and the text editor will automatically run it when files change?
You create a Project in Geany. It will then integrate with `make`, so when you click `build` it will run make for you.
Myself I don't use this feature, I mostly use PHP code. I am very happy with Geany as a lightweight IDE or texteditor and have been using it for years.
You can customize Geany to run a command to compile your code; output will show up in a status panel. Similarly you can have a command to run your program, either in a new xterm or the built-in terminal.
I use it as an advanced text editor on any Linux or BSD workstation I use. I'm not a developer so most of the IDE type stuff goes unused, but I do like having something as powerful as Notepad++ on Windows without resorting to cumbersome editors like Atom or VSCode.
Perhaps you're aware, and I missed the nuance... but, geany uses the scintilla engine as its editor component¹. I was once a pretty heavy SciTE user, and it surprises me how often you can spot it in other tools when shoulder surfing or watching live demos.
I am aware. :-) In fact, I used SciTE for a long time until discovering Geany via Crunchbang Linux, it was the default text editor in that distro. I found I liked its look-and-feel better than SciTE so I switched.
If it takes more than a second to load a text editor (or even a light IDE) I have no use for it. It's not just slow to load, it's also cumbersome to use compared to my preferred tools. Even on my old Core 2 Quad with a spinning hard drive, Geany loads in a split second with several tabs already queued up.
As you said, perhaps it's perspective, but even on my latest build (Ryzen 3600/RX5600XT/NVMe SSD) VSCode is agonizing compared to Notepad++ on Windows and Geany on Linux.
No, generally no more than two dozen or so, and honestly that's pushing the limits of my sanity with a tabbed interface. Any more than that, and I'm switching to Geany and turning on the sidebar. I've tried the "Folder as Workspace" feature and the Explorer plugin in N++ and they aren't as user-friendly.
N++ has had for a few years its own internal sidebar (Setting -> General -> Document List Panel), but I've always used the Window Manager plugin, that for some reason I don't recall (probably the Path column and its handling of the two views that I always keep open) I always found more comfortable.
That said, my usage is not sane and is just a reflection of my organization capabilities and the constant postponement of switching to a better editor (one with good multi-sessions management, for example). A large part of the files are RFCs by the way, that I need from time to time (or just don't care about closing).
I wouldn't be surprised if Geany were much better by the way, there's a lot I dislike in N++.
There's also CudaText and KATE which are decent cross platform editors, they open up fast enough, of course Sublime Text is an option but the former two are free cost wise and close to ST's speed (especially CudaText).
I haven't heard of CudaText before, I'll check it out, thanks!
I'm familiar with Kate, and it works fine but I have to spend more time getting it the way I want it than I do with Geany so I usually just install the latter. My needs are modest compared to most sysadmin and developer types, so (as with Geany and N++) I don't use the bulk of its features.
I tried out Sublime Text when I was using a Mac as my main workstation, but it didn't jive with my workflow so I stayed with TextWrangler on that platform. I've since stopped using my Mac for anything other than experimenting with music production (I don't like the direction the OS is going these days) so a text editor is less of a concern there.
I use Geany as a code editor on my rpi hobby projects. The editor has been around long enough that it is reasonably fast on under powered hardware. I really appreciate having the option.
The RPi is the only place I still use it, but on that platform it works great. For Python programming on the RPi, Thonny is actually a bit better though.
ed is also relevant if you find yourself on an old Sun box with a corrupted /usr volume. In order to rescue the system you need an editor, and ed always lived in /bin. This happened to me a few years ago (2001 I think).
micro is really good! It installs quickly and provides for just the minimal set of features to be used as a goto editor for small tasks at the terminal.
joe, pico, nano, elvis, jedit, acme, gedit, kedit... and those are just the ones that popped into my head within a few seconds. There are legions more.
I used MED in the old OS/2 days. It has been ported to Windows since, sadly not to Linux.
Not free, both as in beer and speech, but reasonably priced and imo worth taking a look.
Kate. Wikipedia calls it a "basic text editor for the KDE desktop" but it really isn't - as well the usual suspects, it has well-conceived ergonomic features like a minimap, rainbow parens, and smart indentation for a variety of contexts (including Lisp/Scheme!). A real coder's editor.
Fond memories of Geany, though, and probably my first choice if I were on some super-constrained low-ram GTK environment, instead of my cushy Plasma desktop.
My editor and IDE of choice for the last 15 years or so.
I keep rushing out and trying newfangled wonderware for the alleged features it will offer me and without which I cannot be supposed to live. And I keep, regular as clockwork, coming back to sane and solid Geany with its speed, straightforwardness, sanity, discoverability, and allround just-so convenience.
Agree, for the last couple of years Geany has been my primary dev environment on Linux after migrating off Windows and Notepad++, and I'm super productive on it, very stable and fast.
Geany is probably the lightest IDE that works well with Rust. If you just basically want an editor with shortcuts to run terminal commands, it's a great solution.
I remember Geany, it was the first "IDE" I ever used :) . I really like that the "build system" was pretty much just scripts that you could do yourself, it made it pretty much usable for any workflow easily. Granted, you could not customize it and integrate everything as much as VS Code, Atom and the likes, but it is doing its job and run extremely good on very old computer.
I remember using Geany throughout high school for our Java/AP Computer Science classes, where it was the editor you were required to use. While I had it customized as much as the system would allow me, calling it an “IDE” is being a bit generous: my Sublime Text can do much, much more than Geany possibly could, and I’m not sure I would call even that an IDE. Geany is basically just a simple, slightly mediocre GUI text editor-which might be what you’re looking for in some cases-but do note that most people’s command-line text editor setups are generally more advanced than it. (If I could compare it to an editor, I’d say it’s just slightly more advanced than nano.)
And just like Sublime, Geany also have an API that third-parties can use for developing their own plugins/extensions. Since Geany is open source, might have even more plugins than Sublime, although I doubt that, Sublime has been way more popular than Geany for as long as I can remember.
> Geany is basically just a simple, slightly mediocre GUI text editor-which might be what you’re looking for in some cases-but do note that most people’s command-line text editor setups are generally more advanced than it.
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.
Nano can compile programs, has tabs, syntax highlighting, line bookmarks, color schemes (your terminal’s), search/replace, and an extremely unsound way to wrap long lines. And while there’s no official plugin system, LD_PRELOAD is always an option ;)
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…
It has real tabs? Which you can click and that show the filename? And I'm also not aware of line bookmarks, and don't see them in the shortcut list? Also nothing for compiling the current project, but that I really might just miss.
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.
Yeah, the tabs show the filename. I have mouse support turned off so I’ve never checked if you can click on them, but I would expect that to work. IIRC bookmarks are bound to M-Insert by default; it should be in the man page somewhere. Regular expressions work if you press M-R once invoking the find dialog. Nano’s pretty powerful!
I can give you more than that, here’s my dotfiles: https://github.com/saagarjha/dotfiles. You may find that .nanorc a bit confusing so I suggest looking around at the other files with “nano” in their name for some context.
Click... in the VTY? I understand this is possible, I just did not realize people relied the functionality—it’s so easy to internalize truths like “people use the terminal to avoid using the mouse”.
Text user interfaces do have mouse support, though it has to be enabled by the running application (overriding the default use of mouse for copy/paste). `gpm` even gives you support in the text-only console. And it should work over a remote SSH connection.
I thought of that partly because my terminal can do that with its tabs, urxvt. Though it's not the same thing probably. But I know that nano has mouse support, which I have enabled.
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.
Yep - I find it very handy in vim (and yes, you can click on the tabs in vim too). Clicking and dragging selects things in visual mode, and you can also drag your tabs to reorder them.
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.
> most people’s command-line text editor setups are generally more advanced than it
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.
You're joking, right? There are a huge number of people that use Emacs and Vim directly in the terminal; nobody uses ed or sed for general-purpose editing.
Oh, do people call Vim and Emacs command-line editors? I thought command-line programs were ones that either were used exclusively from the shell's command-line (like sed) or that when run presented you with their own command-line (like ed or gnuplot). I thought programs like Vim and Emacs were called "full-screen editors" or said to be TUIs (textual user interfaces).
Yah I think they are technically 'TUIs', but because they run in the shell, I think the parent comment was confused. Which is understandable IMO — I think most people lump things into either dedicated apps with a GUI, or programs without a full GUI that you run in the shell. But ultimately, you are correct.
I agree with you that emacs and vim aren't CLI editors. Emacs is a GUI editor and vim is a TUI editor.
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.
Agree: For me and many others the difference between a good text editor with plugins (jEdit, notepad++) and an actual IDE happens to be refactoring:
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.
I tend to agree, but then I wonder what we would call language server protocol additions to editors like Emacs/Vim. Or even Visual Studio Code, for that matter.
Just tried it on Windows; unfortunately the lack of native GUI is a huge turn-off for me.
Software-drawn GUIs always stick out like a sore thumb and look/feel clunky; it's the same reason I hate using anything built with Java as everything always feels so emulated.
Also resizing Geany's window was incredibly laggy as the interface was re-drawn.
I don't agree on the "Everything written in Java feels emulated" part. Have you tried IntelliJ? It is completely written in Java and looks and feels as if it is using native GUI (alhough it indeed isn't).
I'm always on the lookout for a good lightweight code editor to try out. I looked into Geany once and was excited to see that it had a Vim plugin. Unfortunately, reading the docs for it turned me away from it very quickly.
The first thing the author of the Vim plugin for Geany says in the FAQ is that plugin is written by a guy who doesn't use Vim. Which sounds a little strange but I kept reading. Later in the FAQ, he implies that the plugin sucks, Vim sucks, and that he only wrote it to quell the "constant whining of Vim users."
Needless to say, I will not be trying (let alone using) Geany as long as the prevailing attitude of the author of one of the plugins I _would_ use the most holds users in this level of sheer disdain.
Sure, but that's no fault of the Geany devs, only of one plugin author. Seems unfair to judge an IDE based on the documentation for a volunteer-written plugin that you haven't even tried.
Edit: Also, while the dev admits that they don't use vim, they also say that they enjoy working on the plugin and repeatedly ask users to submit bug reports so that they can patch the plugin.
They're also really open to patches and contributions. IMO, this is a perfect example of the true FOSS spirit.
Counterintuitively, a dev supporting a feature about which they care, but without any particular zealous dedication may well produce a more universally appealing product for its audience.
For me, vim bindings makes editing and navigating text a breeze, and completely keyboard controlled. I still rely on my IDE for its well integrated debugger, refactoring capabilities, ctrl-click, etc.
While it may be possible to set this up with vim plugins, it's easier to just plug vim bindings into my IDE.
Geany is my favourite editor for many years.
Blazingly fast and resource friendly. Has most features I need but not bloated...
Only thing I'm missing is support for some newer languages (hcl/terraform comes do mind).
Used to be good, I used a lot in the past, nowadays I use vim for everything(even after I purchased jetbrain whole bundle for years).
Geany is not improved fast enough these days, e.g. debugger was broken, markdown support is not as good, etc. In the core, geany uses scintilla(which is what is used by Notepad++), its capability is restricted by whatever scintilla provides.
Geany was a useful tool a while back, but no longer is packaged for centos and lost its key selling point for me which was a decent GDB plugin debugger at a time where there weren't too many other UIs for GDB.
I'm not so bothered about lightweight as I need horsepower to build my projects anyway.
The world has moved on from hand scripted build commands. (for better or worse).
115 comments
[ 1.9 ms ] story [ 163 ms ] threadHow does a text editor also act as a build system? Do they mean dependencies are automatically discovered and compiled? Or do they mean it integrates with a makefile where you still need to specify the dependencies and the text editor will automatically run it when files change?
Myself I don't use this feature, I mostly use PHP code. I am very happy with Geany as a lightweight IDE or texteditor and have been using it for years.
It was my choice as it was small lightweight and could open large csv and xml.
After that did not follow it, good to see it’s been constantly updated and developed.
An alternative for people like me is SciTE.
https://www.scintilla.org/SciTE.html
1. https://github.com/geany/geany/tree/master/scintilla
As you said, perhaps it's perspective, but even on my latest build (Ryzen 3600/RX5600XT/NVMe SSD) VSCode is agonizing compared to Notepad++ on Windows and Geany on Linux.
you're clearly not keeping 2793 files in your session.xml
That said, my usage is not sane and is just a reflection of my organization capabilities and the constant postponement of switching to a better editor (one with good multi-sessions management, for example). A large part of the files are RFCs by the way, that I need from time to time (or just don't care about closing).
I wouldn't be surprised if Geany were much better by the way, there's a lot I dislike in N++.
CudaText:
http://uvviewsoft.com/cudatext/
KATE:
https://kate-editor.org/
I'm familiar with Kate, and it works fine but I have to spend more time getting it the way I want it than I do with Geany so I usually just install the latter. My needs are modest compared to most sysadmin and developer types, so (as with Geany and N++) I don't use the bulk of its features.
I tried out Sublime Text when I was using a Mac as my main workstation, but it didn't jive with my workflow so I stayed with TextWrangler on that platform. I've since stopped using my Mac for anything other than experimenting with music production (I don't like the direction the OS is going these days) so a text editor is less of a concern there.
http://kakoune.org/
I'm surprised an HN reader could think there were nine text editors and couldn't be bothered to google it.
http://www.med-editor.com/indexus.html
Fond memories of Geany, though, and probably my first choice if I were on some super-constrained low-ram GTK environment, instead of my cushy Plasma desktop.
I keep rushing out and trying newfangled wonderware for the alleged features it will offer me and without which I cannot be supposed to live. And I keep, regular as clockwork, coming back to sane and solid Geany with its speed, straightforwardness, sanity, discoverability, and allround just-so convenience.
Back to geany!
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.
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.
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.
Sounds like you didn’t explore much, or try the plugins? It has an order of magnitude more functionality than nano.
Cross-platform and lightweight (as in memory) is a nice feature to have, especially if you want to get going really fast. Great for beginners too!
https://www.youtube.com/channel/UCBr_Fu6q9iHYQCh13jmpbrg
Software-drawn GUIs always stick out like a sore thumb and look/feel clunky; it's the same reason I hate using anything built with Java as everything always feels so emulated.
Also resizing Geany's window was incredibly laggy as the interface was re-drawn.
I'm always on the lookout for a good lightweight code editor to try out. I looked into Geany once and was excited to see that it had a Vim plugin. Unfortunately, reading the docs for it turned me away from it very quickly.
The first thing the author of the Vim plugin for Geany says in the FAQ is that plugin is written by a guy who doesn't use Vim. Which sounds a little strange but I kept reading. Later in the FAQ, he implies that the plugin sucks, Vim sucks, and that he only wrote it to quell the "constant whining of Vim users."
Needless to say, I will not be trying (let alone using) Geany as long as the prevailing attitude of the author of one of the plugins I _would_ use the most holds users in this level of sheer disdain.
Edit: Also, while the dev admits that they don't use vim, they also say that they enjoy working on the plugin and repeatedly ask users to submit bug reports so that they can patch the plugin.
They're also really open to patches and contributions. IMO, this is a perfect example of the true FOSS spirit.
I think you're being unjustly harsh: https://plugins.geany.org/vimode.html#why-does-vimode-suck-s...
Seems more of a lesson of missing the forest for the trees, because a couple of trees at the edge of the forest gave a dirty look.
Why would anyone want an editor with a "Vim plugin"? Why not simply use Vim?
While it may be possible to set this up with vim plugins, it's easier to just plug vim bindings into my IDE.
Geany is not improved fast enough these days, e.g. debugger was broken, markdown support is not as good, etc. In the core, geany uses scintilla(which is what is used by Notepad++), its capability is restricted by whatever scintilla provides.
I'm not so bothered about lightweight as I need horsepower to build my projects anyway.
The world has moved on from hand scripted build commands. (for better or worse).
[0] https://kate-editor.org/
[1] https://www.kdevelop.org/
[2] http://blog.svenbrauch.de/2011/09/09/kdev-python-argument-ty...