NetBSD adds a new text editor called atto

199 pointsposted 5 days ago
by luke8086

101 Comments

chipotle_coyote

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

luke8086

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

SoftTalker

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

Someone

4 days ago

I think the new users aren’t necessarily beginners, and this targets new BSD users who aren’t beginners w.r.t. using CLI-based computers.

I’m thinking that because the text you referenced also says:

“for users who are not accustomed to text editors with separate insertion and editing modes, and includes support for editing UTF-8 text.”

I’m not sure the group “used to editors without visible menus, but doesn’t know vi” is very large, though.

dang

5 days ago

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

drummojg

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

Natfan

5 days ago

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

marssaxman

5 days ago

I used pico or nano as my everyday unix coding editor for something like fifteen years, starting in the late '90s. It was just fine. I couldn't stand vi and didn't see the point of emacs; I type faster than I think, so I never found that text-editing was enough of a bottleneck to make sophisticated automation worth the effort.

I only stopped using pico/nano after writing my own editor, which blatantly stole pico's interface design.

zimpenfish

5 days 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

insanetake

5 days ago

From the announcement

> To ease the transition for new users...

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

shevy-java

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

user

5 days ago

[deleted]

MonkeyClub

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

torstenvl

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

Koshkin

5 days ago

> `w_doto` for `cursorOffset`

Well, sometimes we call the cursor "the dot."

SoftTalker

5 days ago

Also available for most linux distros as a package.

rfmoz

5 days ago

mg is nice, but I miss the colored text

Gracana

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

itomato

5 days ago

NetBSD has beginners?

helterskelter2

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

dogcow

5 days ago

> NetBSD is IMHO the most beginner friendly nix out there.

I'd argue that OpenBSD would be worthy of that title, too. It is incredibly easy, elegant, and simple. The thoughtfulness that goes into all the base system utilities in OpenBSD is so appreciated.

FreeBSD is kinda somewhere in between Open/NetBSD and Linux in my opinion. Their docs are OK, but the handbook leaves a lot to be desired, and they don't seem to have nearly nice little quality of life utilities that OpenBSD has out of the box.

officeplant

5 days ago

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

Narishma

5 days ago

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

graemep

5 days ago

Beginners to NetBSD who are not vi users.

excannuk

5 days ago

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

mehjustmeh

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

alnsn

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

daishi55

5 days ago

Careful, they might ban you!

user

5 days ago

[deleted]

OnlineTux

5 days ago

Why not just add nano?

jmclnx

5 days ago

Size:

Linux:

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

Matl

5 days ago

Because the BSD's are reflexively anti GNU.

ninjin

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

whartung

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

kragen

5 days ago

Right. Vim is an Emacs in this sense, but mg, atto, joe, readline, etc., aren't.

1vuio0pswjnm7

5 days ago

https://www.netbsd.org/~ktnb/ait.html

(If don't want to link curses and terminfo)

For me ait is a 277.3K static binary (musl)

Here's an earlier "Anthony's Editor" by Anthony Howe of MK Systems for IOCC 1991

https://www.ioccc.org/1991/ant/index.html

Here is a message about writing editors he sent to comp.editors in 1991

https://web.archive.org/web/20031214211718if_/http://ned.rub...

https://web.archive.org/web/20040221091356if_/http://ned.rub...

The later Anthony's Editor upon which atto is based, from 1993:

https://web.archive.org/web/20101130024855if_/http://sites.g...

The atto author got it to compile on GNU/Linux:

https://github.com/hughbarney/Anthonys-Editor--for-Ubuntu-Li...

According to the above Usenet communication, Howe was not a CS major

Perhaps this explains why his IOCC entries are so good IMHO

His 6086-character grep-like utility, "ag", from 1993 is all-time favorite

It still compiles today: 30.6K static binary (musl)

kragen

5 days ago

Yeah, ae is awesome and inspirational, but it's missing some crucial features. It sounds like maybe he did eventually add a single level of undo, though?

Atto seems to be a little smaller than that version of ae, though.

ktnb

5 days ago

ait version 1.16 will be out soon.

Rucadi

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

hnlmorg

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

Daunk

5 days ago

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

stonogo

5 days ago

There is nothing intuitive about any text editor.

jmclnx

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

iamnothere

5 days ago

I think single user has nvi as well.

Edit: apparently it requires /usr to be mounted though

JdeBP

5 days ago

You are looking at the wrong one. Look at /rescue/vi .

cowlevel

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

vintermann

4 days ago

Good point. An undersold feature of the old MS DOS editor (which was pretty nice) was that its command was ...edit.

(And VSCode also took some really good command line name real estate)

kragen

5 days ago

It is important for beginner-friendliness that it be possible to ask for help.

"Hey, how do I insert one file into another in text editor?"

"Which text editor?"

"Text editor."

"Sounds like a personal problem."

cowlevel

4 days ago

In a Windows context when someone asks a question about note pad would you ask which note pad?

hoppp

5 days ago

How do you exit atto? Gotta make it hard:)

fodkodrasz

5 days ago

I guess it has poor (or nonexistent) unicode support in 48kb. My only gripe with NetBSD was its lacking UTF-8 support for many core tools (eg. wscons, vi) when I used it as daily driver beck in the days (NetBSD 5 RC2 times :P)

dkenyser

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

shakna

5 days ago

Anecdote only.

A lot of people in my circles recently got fed up with Windows breaking everything. They went from teasing about Linux, to installing it.

... And then the kernel fully embraced genAI.

The same people went, "No thanks." Saw NetBSD's AI stance, and started installing it.

Granted, tech people. But not that deep into things. Most are scared of the command line - but find they don't need it.

agumonkey

5 days ago

stings to see emacs keybinding hardcoded

unless someone can offer a custom keybinding mechanism.. and custom dynamic functions the user can bind to..

LeFantome

5 days ago

Ironically, the best text editor for *nix may be Microsoft Edit.

talideon

5 days ago

I appreciate this in the man page:

> atto is not the standard editor

bmacho

5 days ago

Badly editorialized title.

arbor-group

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

IshKebab

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

chipotle_coyote

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

IshKebab

5 days ago

The post says "To ease the transition for new users".

hnlmorg

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

user

5 days ago

[deleted]

yearolinuxdsktp

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

IshKebab

5 days ago

Probably because the post starts "To ease the transition for new users..."?

CodeCompost

5 days ago

It's using keystrokes inspired by emacs. Ok.

codedokode

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

elehack

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

pjmlp

5 days ago

I would assert Wordstar style are equally as old.

jruohonen

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

cowlevel

5 days ago

and isn't at all beginner friendly

codedokode

5 days ago

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

knorker

5 days 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!!!"

superbaconman

5 days ago

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

codedokode

5 days ago

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

athorax

5 days ago

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

insanetake

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

jhgb

5 days 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".

boricj

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

lostmsu

5 days ago

msedit ftw

Honestly after VSCode ate a good chunk of vim and emacs users I am not sure why something with similar UX but in terminal is not the standard yet in every *nix. Talk about sunken cost fallacy.

rustyhancock

5 days ago

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