Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Geany – A flyweight IDE (geany.org)
154 points by notRobot on June 16, 2020 | hide | past | favorite | 113 comments


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.)


> 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.

It's no nano (I use and like nano).


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!


@saagarjha

can you share your nano configuration?


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”.


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.


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.


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 use it in vim all the time, and in tmux.


It can write, build and debug code. It's an IDE.


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.


Do you happen to know how to debug C++ or even just C, w/ Geany?


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.


Good question. I'm using VSCode as an IDE for React now but I understand very well why some people use Webstorm.


> 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.


Though, they don't run in the shell, they run in the terminal.


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.


Emacs is a TUI too, just like Vim is a GUI too.


> Emacs is a TUI too

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.


> slightly more advanced than nano.

Sounds like you didn’t explore much, or try the plugins? It has an order of magnitude more functionality than nano.


I used it five days a week for a couple of years to write Java. Not sure I'd prefer it to nano, to be honest.


Micro is better than nano already, though both are simpler than geany (and terminal apps) so not very useful to compare.


A quick lesson about tone and documentation.

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.

I think you're being unjustly harsh: https://plugins.geany.org/vimode.html#why-does-vimode-suck-s...


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.


> A quick lesson about tone and documentation.

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.


> I looked into Geany once and was excited to see that it had a Vim plugin.

Why would anyone want an editor with a "Vim plugin"? Why not simply use Vim?


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.


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.

An alternative for people like me is SciTE.

https://www.scintilla.org/SciTE.html


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.

1. https://github.com/geany/geany/tree/master/scintilla


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.


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).

CudaText:

http://uvviewsoft.com/cudatext/

KATE:

https://kate-editor.org/


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.


It's a matter of perspective I guess. Where I'm from, VSCode is considered lightweight. Cumbersome would describe NetBeans and Eclipse in my mind.


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.


> VSCode is agonizing compared to Notepad++ on Windows

you're clearly not keeping 2793 files in your session.xml


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++.


I am not sure why VSCode is just as slow as the others you mentioned. I have them all installed.


I’ve been using Geany for very long time as my go to casual editor for any type of text. I can install on all my platforms, all my OS, it’s fast and doesn’t gag on huge log files. Same experience in all platforms which is why it’s one of first installed tools. I’m not a prof dev but at home on macOS, pi, beagle, arduino, Win10 the sheer time saving of having something work same across platforms for projects I get to only when work, family, time allows makes it a winner.

When in full on coding mode I prefer vi, rest of the time use Geany. Have tried regularly most other IDEs and text editors and none as fast, reliable, easy to install and use as Geany.

It’s perfect for me. YMMV.


The lib it’s based on is called Scintilla. It is a gem.


Not sure how important it is to emphasize IDE part, but it is lightweight for sure.

It's a capable editor. GTK based, which means on Windows the UX is not native. Still, it can be installed stand alone, GTK is packaged in.

It's not wise that they omitted including most of the plugins on Windows, as it kills its main selling point. Noone is going to bother to build plugins while on Windows. I hope it was just a recent packaging glitch, as MacOS version comes with all plugins built along, which you can enable on demand.

It's a nice altenative for quick exploratory work on some unknown codebases, as Geany extracts/indexes tags and allows one to jump to function defs, vars and such. However you need to have the relevant files already opened, otherwise you need to resort to Find in files to locate where function/ symbol is defined. This may be tedious in heavily structured projects. That's where an actual IDE excells.

But it works! It's a nice tool to have in a portable toolbox... However, looking through its GitHub pages looks like the developers are tired.

By the way, on Windows a nice lightweight alternative is `notepad2-mod`, also Scintilla based, needs no installation, native UI (a little bit too verbose menus).


Ctrl+click is a shortcut to find defs although they need to be opened. Setting up a project with the file sidebar available makes it easier.


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.


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 didn't realize it would integrate with Rust

Back to geany!


still, I always preferred kate[0] (I still use it everyday, even on windows 10) and kdevelop[1] (it had type guessing for python since 2011![2])

[0] https://kate-editor.org/

[1] https://www.kdevelop.org/

[2] http://blog.svenbrauch.de/2011/09/09/kdev-python-argument-ty...


I wish I could use Geany, but I find the tree view plugin substantially lacking and buggy. For example, there is no way to just open a directory in Geany (the same way as in VS Code and Sublime Text) without creating a project file.


> I find the tree view plugin substantially lacking and buggy

Could you report issues to Geany devs?


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.


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.


If you are looking for a lighter than flyweight editor check out https://github.com/rxi/lite


Cute! Is it possible to use on Android in companion with Termux app?


errichto [0] recommends this IDE/editor for competitive programming.

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


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).


I have used it as IDE on Linux for Python development along with vi before moving to emacs.

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.


I've been using Geany since I moved to Linux, is the fastest loading editor I've found. Great editor!


Love geany, it does everything I want and nothing I don’t, fast. FLOSS, low system requirements, and respects your privacy. Has project, terminal, and vcs support, rectangular selections as well.

Lots of functionality is in plugins, such as highlight word and close brackets/quotes, xml formatters I need for work, etc.

I often pair it with micro for consistent key bindings in the terminal if not geany itself over sshfs.


So we have: Vim, Emacs, BBEdit, textmate, notepad++, SublimeText, Atom, Visual Code, Geany... am I missing any?



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.



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.


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.


You're missing dozens more, if not hundreds.


How about just the ones big enough to make it on this list: https://en.wikipedia.org/wiki/List_of_text_editors

I'm surprised an HN reader could think there were nine text editors and couldn't be bothered to google it.


It was a rhetorical question alas. Smartaleklike.


ed is the standard editor.


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).


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.

http://www.med-editor.com/indexus.html



Yes, most of them.


(elementary) Code


Nano.


What are ya'lls thoughts on jucipp vs kdevelop vs vscode vs sublime text for c++ development?

I've been using VSCode (& Codium on my linux machine) for c++ dev. I have the debugger and build tasks all set up and feel happy about that. Wouldn't mind having something a bit more reliable. I get this weird bug in VSCode where CTRL+P doesnt index all the files in the project. I have to manually navigate to the file, open it, and then CTRL+P can find it. I usually end up working with both Sublime Text and VS Code open. Sublime for code reading, VS Code for code writing.

I still feel like Sublime just dropped the ball with poor plugin support and thats what gave VS Code its edge...


C++ is hard to do well from a plugin because of its complexity. For example, jump-to-definition requires resolving complex overloading rules. I have had better luck with IDEs that treat C++ as first class: CLion, VC++, Xcode.


One of the first thing I install every time I install a OS. I've been using it as default light notepad since I saw the light, I think. Split screen plugin is probably my favourite.



Geany is great. Never crashes when editing files mounted over ssh. Ive has stability problems with other programs when the connection gets flaky, but geany never needs a restart and immediately pops up a notification when the mount is lost. One click in nemo to reconnect, one click in geany to reload the file, and everything is back as it was. It certainly beats running vi in a remote terminal and dealing with disconnects.


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).


I use Geany every day, I like how fast it is and that it has highlight of all occurrences of the current variable. I'm a bit disappointed that it hasn't implemented any of the language server protocol (LSP). I think that would be a fast way to improve the intelligence of it's autocomplete for many languages.


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).


It's better than some older Java GUIs but still really doesn't feel native.


Have you tried it on macOS?


Geany is "native" on Linux, FWIW.


I've had Geany on my Mac since I found it while looking for an editor for the Raspberry Pi. They include in their disk image now. I still use BBEdit but Geany is the closest thing I've found to it that will run on a RPi. It's been a long time since I've reviewed what's out there now though.


> Build system to compile and execute your code

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.


You press F8 or F9 and it runs a command, and shows you the output.


"Flyweight"?


It's a boxing term.


More specifically it's the lightest weight class in boxing. Lightweight is actually about bang in the middle of typical weight classes


It's also a classic design pattern...


https://codelite.org/ is another powerful IDE with low memory footprint compared to modern IDEs and with more features like workspace support.


I used this over a decade ago, and it was wonderful, a lot like VSCode or Atom, but without debug support and fewer plugins.


Red Hat 5, Gnome 2.6 and Geany was the standard at my uni for C/C++ firmware dev. Good times :)


I use vscode for programming, but I went back to sublime for jotting down notes.


Whenever I am in Linux, I use Geany mostly as text-editor.


Didn’t development stop on this?


Last commit was 11 days ago. That's probably a dead project in the Javascript world, but I'd say it's still active.


Last time I used Geany, the laptop fan spun up like crazy and my battery drained like it's nobody's business. I quickly stopped using it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: