NetBSD adds a new text editor called atto

Posted by luke8086 6 hours ago

Counter113Comment97OpenOriginal

Comments

Comment by chipotle_coyote 4 hours ago

To promote this to a top-level comment, because I think it's important context: nothing in the README file says the point is to be "beginner-friendly". As far as I can tell, that's something that Hacker News or whoever submitted this used as a description. Neither the word "beginner" nor the word "friendly" appear in the README; its goal is to "be the smallest functional Emacs in less than 2000 lines of C."

I think somebody incorrectly described Atto as comparable to nano/pico, and these comments are dragging it because it's not something that it was never intended as.

Comment by luke8086 3 hours ago

OP here, I just paraphrased the announcement:

> To ease the transition for new users, #NetBSD -current now includes an alternative editor to vi(1) and xedit(1) in its base system, atto(1). https://man.netbsd.org/atto.1

> It is a modeless screen-based editor similar to nano, pico, xedit, or emacs. It is only 48 kilobytes, making it suitable for inclusion in the rescue system.

I think it's fair to call it beginner-friendly, in context of BSD and vi, but maybe indeed it shouldn't be a part of the title.

Comment by SoftTalker 3 hours ago

I can't imagine a beginner really knowing what is going on in nano.

Every time I get launched into nano/pico on a new system I find it very confusing. To use the help menu you need to know that ^-X means Ctrl-X and M-X means Alt-X. Why "Write Out" and not "Save"? And when I "Write Out" I'm offered DOS format or Mac format, and options to Append or Prepend (not even sure what that does).

It's completely bizarre if you're used to something like Notepad or Word.

Comment by basscomm 1 hour ago

> I can't imagine a beginner really knowing what is going on in nano.

When you launch nano without a file loaded, there's a notice at the bottom of the screen: [ Welcome to nano. For basic help, type Ctrl+G. ]

Press 'Ctrl + G' and it takes you to a help page that says, among other things, "Shortcuts are written as follows: Control-key sequences are notated with a '^' and can be entered either by using the Ctrl key or pressing the Esc key twice. Meta-key sequences are notated with 'M-' and can be entered using either the Alt, Cmd, or Esc key, depending on your keyboard setup."

You can't force a user to read docs or learn how the programs they're using work, but this is a reasonable attempt.

Comment by mmmlinux 1 hour ago

I use nano the same way I use notepad. I open a file, edit it, hit close, and agree to save when it complains to me.

Comment by forgotpwd16 1 hour ago

>Why "Write Out" and not "Save"?

At least "Uncut" has been renamed to "Paste".

Comment by dang 55 minutes ago

Ok, we've removed beginner-friendliness from the title above. It's still interesting!

Comment by zimpenfish 22 minutes ago

> nothing in the README file says the point is to be "beginner-friendly"

"for users who are not accustomed to text editors with separate insertion and editing modes"[0] could be construed as "beginner-friendly" (albeit with some squinting, I'd concede.)

[0] https://man.netbsd.org/atto.1

Comment by drummojg 4 hours ago

I would never drag pico. I wrote software that's been packaged in Linux distros in pico. And I lost the urge to be The Smartest Guy In The [Room/Mailing List/Forum] a long, long time ago.

Comment by Natfan 4 hours ago

what's really the point in being the smartest person in the room? you'll never learn anything!

Comment by majorchord 2 hours ago

Not only that, but you constantly feel like Idiocracy is playing out in real time, and that everyone else around you is closer to monkeys than a rational empathetic human... it's exhausting, lonely and debilitating. Then you realize there are people much smarter than you, and you wonder how they must feel.

Reminds me of that House MD episode where the delivery driver was a secret genius who was abusing DXM to dumb himself down just to feel happy.

"For with much wisdom comes much sorrow; the more knowledge, the more grief."

Comment by MonkeyClub 3 hours ago

Yep, whenever you find yourself being the smartest person in the room, you need to find yourself a smarter room.

Comment by vinceguidry 3 hours ago

Or just learn how to teach.

Comment by aleph_minus_one 2 hours ago

> Or just learn how to teach.

Most people don't want to learn (in particular not learn sufficiently hard to really improve).

Comment by lioeters 1 hour ago

True, many a junior dev I've had to work with was convinced they're the smartest person in the room, good at what they do but so full of themselves they're unable to adapt, acquire new knowledge or consider new paradigms.

Learning requires some amount of humbleness, to accept you don't know everything.

Comment by vinceguidry 1 hour ago

Motivating students to want to learn isn't rocket science, just a rare skill to see.

Comment by metchio 3 hours ago

sometimes humans do irrational things / have illogical behaviour just to glorify their own ego. it happens also to the very best sometimes

Comment by insanetake 4 hours ago

From the announcement

> To ease the transition for new users...

So I would consider it for beginners ("new users") and friendly ("to ease").

Comment by shevy-java 1 hour ago

Well nano pico atto ... the name makes it comparable. Why would you expect people to not draw that connection?

I think the main take-away is that vi/vim is too complicated for many folks. I use nano a lot on the commandline. For quick editing it is so much more convenient than vim.

Comment by 4 hours ago

Comment by MonkeyClub 3 hours ago

OpenBSD also has an Emacs-y non-extensible editor, mg(1):

https://man.openbsd.org/mg

Just noting for completeness, as I didn’t catch any mention of it.

Comment by torstenvl 3 hours ago

I've used mg and find it generally useful. It's my default editor pretty much everywhere.

However, the code is a mess, with deliberately cryptic identifiers (e.g., `w_doto` for `cursorOffset`), redundant functions (e.g., `vtputc()` is a strict subset of the behavior of `vtpute()`) and a bunch of other weird choices (e.g., deeply-baked assumptions that one byte == one char == one column, even thought Big5 and ShiftJIS were already a thing when it was written).

I tried adding UTF-8 support to mg a couple years ago and basically gave up.

I'll probably be an atto convert.

Comment by SoftTalker 3 hours ago

Also available for most linux distros as a package.

Comment by Fil0sOFF 2 hours ago

> https://man.netbsd.org/atto.1

> atto is not the standard editor.

Hah. That is clearly a reference to https://www.gnu.org/fun/jokes/ed-msg.en.html

Comment by Levitating 5 hours ago

NetBSD isn't the first to use the name. My pet text editor is also called atto: https://git.levitati.ng/Levitating/atto

Comment by mig39 38 minutes ago

Also used by Moodle, the open source LMS: https://docs.moodle.org/400/en/Atto_editor

Comment by forgotpwd16 1 hour ago

And before you was: https://github.com/makuke1234/atto, which notes its name originating from A Truly Tiny text editOr.

Comment by whartung 1 hour ago

I always thought the essential feature of an emacs was its extensibility. I never felt that emacs was just a collection of keybinds and split buffer windows.

Note, I'm not talking about Lisp per se, just some kind of mechanic within the editor to allow the user to make extensions to it.

Comment by itomato 5 hours ago

NetBSD has beginners?

Comment by helterskelter2 15 minutes ago

NetBSD is IMHO the most beginner friendly nix out there. It's small, lean, and well documented. You could know almost nothing about nix, read their handbook, and come the other side half competent. Linux (my daily driver) by comparison is a constantly moving target with no single source for coherent documentation and where anything goes. FreeBSD is better, but when I last used the handbook it had plenty of outdated chapters, and it seemed like everything had so many different ways of doing things. NetBSD had small elegant solutions, and recompiling your entire system from scratch was a pleasant experience that didn't have me trapped in dependency hell or even needing to consult documentation after I got started.

Comment by officeplant 4 hours ago

Currently seeing an influx of interest from new people who want an OS with strong anti-ai stances.

Comment by Narishma 3 hours ago

And those who still use 32-bit machines, as Linux is in the process of killing support for them.

Comment by antiframe 1 hour ago

Oh no! What does that mean for using Wine to play games? From what I understand a lot of Windows games (especially older ones) require 32-bit Wine, which requires 32-bit libs (which I assume requires 32-bit Kernel support). It's the sole reason I run 64- and 32-bit multilib on my Arch box: playing Windows games.

Comment by tancop 1 hour ago

64 bit Linux can run 32 bit programs just like Windows. Modern Wine is using a WoW64 model where the 64 bit host code loads 32 bit DLLs when some app needs them.

Comment by graemep 5 hours ago

Beginners to NetBSD who are not vi users.

Comment by mehjustmeh 17 minutes ago

It's funny because I learned enough vi to be useful specifically because of NetBSD forcing you to change "rc_configured=NO" to "rc_configured=YES" in rc.conf.

Comment by excannuk 4 hours ago

That's not an empty set? I'm an eMacs guy, and I use vi when on the shell

Comment by graemep 1 hour ago

I think there are a lot of people who are not comfortable with vi. Its much the same reason that some Linux distros default to nano.

I spend a fair bit of time on Linux command lines, but I use a mix of different TUI and GUI editors (including ones that work over ssh for editing files on servers), and none of those are vi. I can manage vi if I must, but its an effort and distracts from the task because I have to think about how to do things in vi.

Comment by alnsn 4 hours ago

You can ask Claude to cross-complie, prepare an image (aka install) and run an emulator. I tried exactly this yesterday and in about an hour I could attach to tmux and run tests on emulated riscv64 board.

Comment by daishi55 4 hours ago

Careful, they might ban you!

Comment by 4 hours ago

Comment by Gracana 3 hours ago

Who knew a little emacs-like editor would be so controversial.

I think it looks great. Syntax highlighting, multi-buffer, splits, standard emacs commands... For new users in the emacs camp, this seems like a nice editor to include in the base install. Even as a vi user, I'd be pretty happy being stuck with this in a rescue system.

Comment by markusQi 4 hours ago

The source code and README are here: https://github.com/NetBSD/src/tree/trunk/usr.bin/atto

You are welcome!

Comment by passthejoe 3 hours ago

The dev calls it "Atto Emacs"

https://github.com/hughbarney/atto

Comment by OnlineTux 5 hours ago

Why not just add nano?

Comment by Matl 5 hours ago

Because the BSD's are reflexively anti GNU.

Comment by ninjin 5 hours ago

nano(1) is GPLv3 last time I checked and that imposes more restrictions than most (all?) of the rest of the code in NetBSD. It is not about being "reflexive", it is a violation of the very ethos of the project. Gnu rejecting non-free licenses from their own distributions is not "reflexive", it is simply not in line with what they want to achieve and one should respect that.

Comment by Matl 5 hours ago

Unless they modify it, the GPL really doesn't impact them. AFAIK FSF considers most BSD/MIT style licences to be compatible. It's the other way around where things gets stuck. Unless they need Linux GPU/WIFI/BT drivers to make things work, of course. Then it's fine.

Comment by brewmarche 4 hours ago

> Unless they need Linux GPU/WIFI/BT drivers to make things work, of course. Then it's fine.

The parts of Linux that get integrated into BSDs should not be GPL-licensed, e.g. <https://github.com/torvalds/linux/blob/c339f4010dea8b0d754f8...> and its siblings use MIT.

Comment by 4 hours ago

Comment by ninjin 4 hours ago

Modification is the whole point of open source: "Unless you want to modify Windows, the closeness does not impact you". If you want to learn about how NetBSD looks at things, there is this page:

https://netbsd.org/about/redistribution.html

As for being compatible. Yes, FSF considers anything permissive to be compatible with their family of licenses. However, it is a one-way relationship in that permissive code can be freely used by GPL projects, but not the other way around as using GPL code would impose further restrictions compared to a permissive license.

Comment by jmclnx 4 hours ago

Size:

Linux:

     -rwxr-xr-x 1 root root 321832 Dec 15  2021 /usr/bin/nano
per the link, atto(1) is 48 kilobytes.

Comment by mig39 3 hours ago

Is this the same editor that is used in the open-source Moodle LMS?

https://docs.moodle.org/400/en/Atto_editor https://github.com/moodlehq/moodle-editor_atto

Comment by forgotpwd16 1 hour ago

Moodle's is a PHP-written web editor. Submitted is a C-written terminal editor.

Comment by dkenyser 2 hours ago

Genuine question: Are there a lot of "beginners" hopping on NetBSD?

I feel like most people who even know about NetBSD would be technical enough to at least function at a basic level in something like vi or nano.

Comment by Rucadi 5 hours ago

For me the most easy-to-use editor for cli / ssh and relatively lightweight is https://github.com/sinelaw/fresh everybody can just use it intuitively.

Comment by hnlmorg 4 hours ago

I’ll take a look at this. But it’s worth noting that NetBSDs goal was to have something small enough that it can be used in a recovery shell.

Comment by Daunk 4 hours ago

I think they'd have your head on a plate if you suggested a vibe coded text editor.

Comment by stonogo 3 hours ago

There is nothing intuitive about any text editor.

Comment by bmacho 3 hours ago

Badly editorialized title.

Comment by cowlevel 3 hours ago

To be beginner friendly they should call it text editor. Or notepad, or quickwriter. No beginner is going to guess that something called Atto lets you write words on a computer.

Comment by jmclnx 4 hours ago

>making it suitable for inclusion in the rescue system

People seem to be missing the point. Also NetBSD has what I call a "real single user mode". Last time I had to boot single user, ed(1) was the only editor available without some work. My guess is this new editor will be useful for people who do not want to deal with ed(1).

I have not seen it yet, but I guess it will be included in 11.1.

Comment by iamnothere 3 hours ago

I think single user has nvi as well.

Edit: apparently it requires /usr to be mounted though

Comment by arbor-group 4 hours ago

The beginner-friendly label seems to be obscuring what atto actually is, which is a very small Emacs-like editor meant to live in the base system. At roughly 48 KB and under 2,000 lines of C, it fits places nano and the larger alternatives do not, especially a rescue environment or single-user mode where you still need something more usable than ed or a stripped-down vi. That constraint also explains the choices people are arguing about here: Emacs bindings come with the design, and a permissively licensed C program can be maintained with the tools NetBSD already ships, unlike a Go editor such as micro. For someone new to NetBSD but already comfortable at a Unix terminal, that is a reasonable trade. It is less a first editor for a general beginner than a safety net that happens to be approachable once you are already in that world.

Comment by georgestones 5 hours ago

[dead]

Comment by IshKebab 5 hours ago

> Perhaps all that needs to be known to use atto at a basic level is that holding the control key, pressing x, then pressing w will write the currently open file, and holding the control key, pressing x, then pressing c will exit the editor.

Very beginner friendly lol. These people have no idea.

Micro is a beginner-friendly console text editor. This isn't.

Comment by hnlmorg 4 hours ago

I don’t think NetBSD and yourself are using the term in the same context.

By this I mean, a beginner to NetBSD is already a far more competent user than a beginner in many other contexts of OS users.

Comment by chipotle_coyote 4 hours ago

Nothing in the README file says the point is to be "beginner-friendly"; as far as I can tell, that's something that Hacker News or whoever submitted this used as a description. Neither the word "beginner" nor the word "friendly" appear in the README; its goal is to "be the smallest fuctional Emacs in less than 2000 lines of C."

tl;dr: I think somebody incorrectly described Atto as comparable to nano/pico, and these comments are dragging it because it's not the thing that it was never meant to be.

Comment by passthejoe 4 hours ago

Micro is MIT licensed, so it should be shippable in NetBSD base.

https://github.com/micro-editor/MICRO

Comment by lukaslalinsky 4 hours ago

But written in Go, and I would expect the NetBSD base only includes software buildable using tools already in the base system.

Comment by iamnothere 3 hours ago

11 MB is also a lot bigger than 48k

I do think Micro is a nice editor, but we need a tiny, BSD licensed pico/nano for true beginners

Comment by passthejoe 3 hours ago

I didn't realize the size difference was so huge.

Atto has a great man page that would give a user everything they needed to know if they were unfamiliar with emacs keybindings.

Comment by passthejoe 4 hours ago

Good point

Comment by CodeCompost 4 hours ago

It's using keystrokes inspired by emacs. Ok.

Comment by pwdisswordfishq 4 hours ago

As we all know, beginners love Emacs keystrokes.

Comment by yearolinuxdsktp 4 hours ago

Project headline is “The smallest functional Emacs in less than 2000 lines of C.”

How someone jumped to beginner-friendly from that is the real question.

Comment by 4 hours ago

Comment by codedokode 4 hours ago

Why are they using weird key combinations instead of traditional Ctrl + S, Ctrl + A, Ctrl + C used in desktop applications? Why every console program wants to be a special snowflake and not use standard key combinations, please explain. I do not care that 40 years ago someone used Ctrl + C to send SIGINT, it is 2026 now.

Comment by elehack 4 hours ago

Atto's default key bindings match Emacs, which is about as standard as you get for non-modal editing keys in older Unix traditions.

Comment by jruohonen 24 minutes ago

> match Emacs

For many, it is indeed about what they call "muscle memory". Almost impossible to change after so many years. And therefore I hope everyone would provide keybinding alternatives generally (shouldn't be that hard).

Comment by pjmlp 3 hours ago

I would assert Wordstar style are equally as old.

Comment by Narishma 3 hours ago

But are mostly forgotten while emacs keybindings are still popular and found in all kinds of places you wouldn't expect, like MacOS textboxes.

Comment by pjmlp 2 hours ago

Not when using joe, for example.

Comment by cowlevel 3 hours ago

and isn't at all beginner friendly

Comment by codedokode 3 hours ago

Emacs is probably older than me why should we care about what they used in 80s?

Comment by MonkeyClub 3 hours ago

I see you’re using Latin characters...

Comment by pjmlp 3 hours ago

Depends, do you care about UNIX and C, as products from 1970's?

Comment by codedokode 3 hours ago

UNIX doesn't exist anymore, and C has lot of negative points (easy to create buffer overflows, integer overflows, use-after-free, and other vulnerabilities).

Comment by pjmlp 2 hours ago

It surely does, Linux distros, BSDs, Aix, z/UNIX are all alive and well.

Despite all those flaws, people keep writing new software in C every day, go figure.

Comment by knorker 1 hour ago

It's 2026, why would anyone want to use an Intel architecture?

Or ARM? It's from the 1980s! So old!

Comment by superbaconman 3 hours ago

I think you're underestimating just how "standard" many of the shortcuts are when mapped against a standard shell.

Comment by codedokode 3 hours ago

"Standard shell" also should allow Ctrl + C for copying, it makes no sense to use a different combination for console.

Comment by basscomm 1 hour ago

Okay, but now you have to modify the shell and configure a different shortcut for SIGINT without stepping on something else.

Comment by codedokode 1 hour ago

Is this problem a Nobel prize level problem?

Comment by knorker 1 hour ago

55 years of a standard, but then you come and say that the standard should be something else.

That's… not what "standard" means.

Comment by currysausage 4 hours ago

You might enjoy the new Microsoft Edit [1].

[1] https://github.com/microsoft/edit

Comment by jhgb 1 hour ago

How is Ctrl+S "more traditional" than C-x C-s? C-x C-s is like 50 years old by now. Surely that qualifies as "traditional".

Comment by athorax 3 hours ago

These are about as standard as you can get when it comes to Unix keybindings

Comment by insanetake 4 hours ago

These key combinations have been used for 50 years, so I'm not sure why you call them non-standard. They're just a different standard from what you're used to.

Comment by boricj 4 hours ago

That sounds like Emacs. Wouldn't know though, given that I dislike vim too.

I would prefer ms-edit or nano if I have to edit text files from the terminal.

Comment by rustyhancock 4 hours ago

Because this isn't beginner friendly it's a new micro Emacs and those are standard libreadline/emacs bindings.

Comment by knorker 1 hour ago

> I do not care that 40 years ago someone used Ctrl + C to send SIGINT, it is 2026 now.

Not "40 years ago". Non-stop all day every day for 55 years.

The fact that you personally don't use it today is as irrelevant as if you were ranting about "why doesn't Linux have a Start menu!? It's 2026!!!"