Remix.run Logo
Using Microsoft's New CLI Text Editor on Ubuntu(omgubuntu.co.uk)
259 points by jandeboevrie 4 days ago | 270 comments
felineflock a day ago | parent | next [-]

I appreciate the effort that went into writing the article but it conflates different concepts missing some historical context and technical distinctions.

For example, TUI (text user interface) and CLI (command-line interface) are quite different. "CLI Text Editor" sounds more like someone editing a file using ECHO commands.

This new editor is actually a reimplementation of the classic MS-DOS 5 EDIT program from 1991. At that time, VIM was still very new, so "VIM memes" weren't yet part of the tech landscape.

Before VIM, there was vi. In Usenet posts - about 15 years before Google - people used to add a pithy humorous sentence at the bottom called "tagline" - here is one: "How do you exit vi? Reboot the system."

And Notepad was not the only option for Windows devs. We've had EDIT, DR-DOS EDITOR, Brief, WordPad, EditPad, Notepad++, and more.

skissane 6 hours ago | parent | next [-]

> This new editor is actually a reimplementation of the classic MS-DOS 5 EDIT program from 1991

MS-DOS 5 EDIT is actually just a stub which runs QBASIC in editor mode, in which all the BASIC-related features are disabled.

Windows 95 EDIT was different, it actually had BASIC removed from the binary. I don't know if it was a rewrite or if they just deleted (or even #ifdef-ed) out the BASIC parts out of the source code.

QBASIC was basically just a cut-down build of QuickBASIC with some features disabled. The TUI part was provided by the "Character Windows" (aka "Character-Oriented Windows", CW or COW) library, a TUI-mode analog to the Windows 3.x API for DOS TUI apps, it was also used by some other Microsoft products such as Word for DOS. It would be great were Microsoft to open source it (although from what I've heard, significant chunks of this stuff have already been included in various leaks of DOS and Windows source code, but it would be nice to have it publicly available in a completely kosher way)

marttt 20 hours ago | parent | prev | next [-]

I've long quit using vim on a daily basis, but the "how to exit Vim?" jokes are still somehow funny. A recent encounter was an old tweet by @iamdeveloper: "I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it."

:wq (sorry, I had to).

pjio 19 hours ago | parent | next [-]

Quitting vim isn't about exiting the program, which can easily be done with :!kill -9 $PPID

__MatrixMan__ 11 hours ago | parent | next [-]

Quitting vim became easy once I got to know helix. I've been clean for several weeks.

marttt 11 hours ago | parent | prev | next [-]

Easy-peasy!

tylerchilds 15 hours ago | parent | prev [-]

i quit vim like

ctrl-z

Jenk 20 hours ago | parent | prev [-]

`ZZ` to save and quit, `ZQ` to quit without saving. Sorry, I can't help myself.

Brian_K_White 19 hours ago | parent [-]

I've always used :x or :x! and no longer remember why. Probably it's a bad idea like without actually looking right now I think it might mean to ignore permissions (if you're root enough) and just write even if perms would have blocked it. Hm, maybe x means wq and just the ! means force.

mklein994 18 hours ago | parent [-]

It's actually a bit more nuanced: `:x` is like `:wq`, but only writes if changes have been made. `:x!` has the same semantics as `:wq!`.

BoiledCabbage 17 hours ago | parent | next [-]

The fact that everyone says the meme is dead, but in this small thread there are 5 different people posting how to exit, and none of them are the same says there is still pretty good substance behind that meme.

Brian_K_White 14 hours ago | parent [-]

I think we're all kind of implicitly acknowledging the truth of the meme. I mean that was definitely a conscious part of my own comment.

humanperhaps 18 hours ago | parent | prev [-]

I feel like the default behavior should be to not write unless changes have been made. I may be misunderstanding here, but what would be getting written if nothing's been changed?

johannes1234321 18 hours ago | parent | next [-]

It would overwrite changes made by external programs.

greiskul 18 hours ago | parent | prev [-]

Metadata about the file like modification time.

Jenk 20 hours ago | parent | prev | next [-]

Before vim was vi. Befote vi was ex. (Before ex was ed - the first editor for unix)

Vim has ex built in - `Q` in normal mode to enter Ex mode, 3-5 command lines will show at the bottom and you can Ex away. I don't know of practical uses, I've only done it for the novelty.

Obligatory: To exit Ex mode use `:vi[sual]` - and that's probably where Vi got its name.

actionfromafar 19 hours ago | parent [-]

ed is the standard editor

lukasb 17 hours ago | parent | next [-]

For everyone downvoting this https://www.gnu.org/fun/jokes/ed-msg.en.html

joshu 5 hours ago | parent | prev [-]

i just want an editor! not a viitor! not an emacsitor! those aren't even words!

abhgh a day ago | parent | prev | next [-]

I noticed the conflation of terms too but it seems to arise out of the original Microsoft announcement!

https://devblogs.microsoft.com/commandline/edit-is-now-open-...

hk1337 18 hours ago | parent | prev | next [-]

> This new editor is actually a reimplementation of the classic MS-DOS 5 EDIT program from 1991.

I remember editing the AUTOEXEC.BAT in that thing as well as writing my own BAT files and QBASIC.

bee_rider a day ago | parent | prev | next [-]

Does the exclamation point work in vi, like vim? So the way to exit is to do:

:!killall vi

Of course.

For a cli text editor, ed would qualify, right?

diggan a day ago | parent | next [-]

> For a cli text editor, ed would qualify, right?

It'd still say ed is more of a TUI than CLI, albeit kind of old-school since it doesn't redraw the screen, just continuously show output and let you enter commands. Maybe "REPL" comes closer, because it's not interactive in the typical TUI way.

layer8 a day ago | parent | next [-]

I fail to see the difference between REPL and CLI here. Any line-based interactive interface where you type commands is a CLI, like for example the ftp or mysql clients in interactive mode. Or, indeed, ed.

MobiusHorizons 21 hours ago | parent | next [-]

Personally I usually make the distinction based on whether the process has to switch the tty to raw mode and overwrites the full screen (typically using ncurses), but it sounds like the person you are replying to makes the distinction in whether the program needs user input while executing. I guess such programs are more likely to work in pipelines or shell scripts

layer8 21 hours ago | parent [-]

Unix shells “need user input while executing” in that sense. A program not being a Unix shell doesn’t make it non-CLI. A shell constitutes a CLI due to its interactive line-based user interface. Any other program with such an interface counts as being a CLI program for the same reason.

kristjansson 20 hours ago | parent | prev | next [-]

Could you run it on an actual teletype without consuming an entire forest worth of paper? That’s a CLI. Otherwise it’s a TUI.

layer8 19 hours ago | parent [-]

I don’t agree, it’s consecutive line output vs. screen-based rendering and repositioning. Regardless, ed was developed for and used on actual teletypes. It’s entire interface is geared towards that usage.

Brian_K_White 19 hours ago | parent [-]

I think ed also served the function of sed and patch. Ie you could record a bunch of edits into a file and it could read the script and perform all the edits to some input file. So it was more useful than an interactive line based editor sounds.

layer8 18 hours ago | parent [-]

This is the same distinction as between running commands with bash -c (or just by executing a regular Bash script) and running them manually in an interactive Bash session. It’s pretty much an inherent feature of command-line interfaces that you can script them.

Brian_K_White 13 hours ago | parent | next [-]

Wasn't intended to be a distinction but an aside.

But as to that, it's slightly different than merely being able to play back a recording of commands. It IS that, but that can be applied in a way that acts more like the examples I said like sed or patch, or expect, where the script can apply some funcion to different inputs, not just playing back a recording. I'm not denying the implimentation, how the job gets done, is technically still just a recording of commands.

lern_too_spel 4 hours ago | parent | prev [-]

It's different. Grep was a function of ed ('g/re/p') that was later extracted into its own program to search files that could not fit in memory. Sed then came along and implemented the 's/re/substitution/' functionality from ed for the streaming use case.

Brian_K_White 19 hours ago | parent | prev [-]

They are obviously "command line interfaces" in that the interface is that you enter lines of commands.

They are equally obviously different from the non-interative interface where all input is provided in the command line arguments and other shell syntax (pipes, redirection).

ls is a cli app. bash is an interative app that provides the cli environment in which you use ls.

I fail to see what is gained by trying make the meaning of "cli app" unclear when it definitely has an understood meaning, just because you can technically assemble the same words to mean other things. Sure in certsin contexts where you are speaking more geneticslly and more abstractly like in some research paper you may refer to a wide range of things all as "command line interface". But so what? How does noting that help in this context? (It does not)

layer8 17 hours ago | parent [-]

I disagree that it is well-understood in the way you describe. I agree that there are two distinct concepts: 1. Programs that can be run as a CLI command, often without further user interaction (but consider cases like rm -i, which are quite common), and 2. programs that expose their functionality by providing their own interactive CLI.

In the case of 1, the program’s argument syntax can be referred to as the program’s “command-line interface”. But the abbreviation “CLI” usually means the interactive interface as in 2.

The latter is analogous to the notion of how TUI programs provide their own interactive interface. When making the distinction between CLI and TUI, it’s the latter that is meant, i.e. is it a line-oriented or screen-oriented user interface.

Saying “CLI editor” doesn’t imply that the editor commands are necessarily invoked as non-interactive shell commands, as opposed to the editor providing a CLI of its own.

Technically, every program can serve as a “CLI command”, since you can invoke it with arguments. However, “command line” is generally understood to mean the user interface where the user types commands, as opposed to non-interactive program invocation. When invoking a program with arguments from another program with exec or similar, you don’t call that a CLI.

Jenk 20 hours ago | parent | prev | next [-]

Ed was designed in an age where the visual interface was a printer - so it is most assuredly a cli tool :)

hamburglar 20 hours ago | parent | prev | next [-]

Is it actually important that we come up with a formal definition of these things, though? They are colloquial terms, there is some overlap, and people are always going to use one or the other “incorrectly” according to you. It’s more important that we recognize that’s a potential source of differing terminology and ignore that rather than fixating on it.

WD-42 a day ago | parent | prev [-]

Not sure why you are downvoted this is entirely correct

spauldo 11 hours ago | parent [-]

Probably because most of us don't think it's correct at all.

TUI apps aren't common anymore, which adds to the confusion as a lot of people didn't grow up with them and don't grasp the difference. A TUI app takes control of the terminal and redraws different parts of the screen to present a consistent, non-scrolling experience. If you've ever used a system where your interface was an IBM 3270 emulator (or better, an actual 3270 terminal), that's TUI. vi/vim and non-GUI Emacs are also TUI.

A CLI app just prints its output at the cursor and the output scrolls off the top of the screen as you go. The Bourne, Korn, Bourne Again, and C shells are all CLI, as are most REPLs and the majority of interactive non-GUI UNIX programs (including ed) these days.

rbanffy 21 hours ago | parent | prev | next [-]

MS-DOS had edlin, which was their own take on ed. They never made a firm commitment, however, to make edlin the standard editor.

aforwardslash 15 hours ago | parent [-]

Edlin was the standard editor in dos 3.x. As far as I can remember, edit came later (dos 4.x-5?)

rbanffy 13 hours ago | parent [-]

I don’t remember any tools that output edlin commands that could be piped to it the same way it’s done with ed.

roryirvine 20 hours ago | parent | prev [-]

for maximum excitement, try that killall method on a SysV unix...

spauldo 11 hours ago | parent [-]

Ye gods, I had managed to bury that memory! Went from Slackware to Solaris, and then used killall while teaching a UNIX class. Everyone got a laugh and a smoke break, and I got knocked down a peg.

JdeBP a day ago | parent | prev | next [-]

Interestingly enough, the weird re-boosting to get more views thing that Hacker News sometimes does is making it seem like I said all of that 5 hours ago.

* https://news.ycombinator.com/item?id=44310682

Instead of 2 days ago when I actually wrote it. (-:

WalterBright 14 hours ago | parent | prev | next [-]

Don't forget MicroEmacs! I've been using it ever since it floated around usenet in 1985 or so.

reaperducer a day ago | parent | prev | next [-]

In Usenet posts - about 15 years before Google - people used to add a pithy humorous sentence at the bottom called "tagline"

We always called them "signatures." They were even stored in a file named .sig.

felineflock a day ago | parent | next [-]

The tagline was below or at the end of the signature.

They were stored separately in a list and there was software that would pick one of them randomly to add to the signature when posting.

invaliduser a day ago | parent | prev | next [-]

taglines where witty one-liners posted at the end of messages, after the signature, as a way to add a bit of humor or personality.

I think we also used them in fidonet echomail, but I don't remember for sure.

int_19h 4 hours ago | parent | next [-]

In echomail they were known as "Origin" because the intended purpose of that line was to identify the originating node. It looked like this:

  * Origin: any random text (12:34/56.78)
The text was supposed to be the name or description of the node, but this wasn't mandated by the rules, and the address at the end unambiguously identified the node anyway for anyone who cared, so people quickly repurposed it for taglines.
JdeBP 21 hours ago | parent | prev [-]

The problem is that the nomenclature and conventions differed, and this many years later people tend to conflate them.

BBS networks like ILink had tearlines, optional taglines, and mandatory origin lines. FidoNet had tearlines and origin lines because it shared roots and sometimes nodes with the BBS networks; so they were there for compatibility. Usenet mainly had signatures, with all of its equivalents to the other stuff in headers.

* http://ftsc.org/docs/fts-0004.001

angled a day ago | parent | prev [-]

^H^H^H^Hsignature

snozolli a day ago | parent | prev | next [-]

TUI (text user interface)

I find it interesting that everyone is using TUI when I've always seen CUI (Character User Interface). I come from a DOS and Windows background, and it seems like TUI comes from the *nix world.

And Notepad was not the only option for Windows devs.

Dr Dobbs and other tech magazines used to have ads for a variety of editors. And linkers, which were the bane of 80s programmers' lives. There was a whole era of programmer-oriented software that seems to have been largely forgotten.

layer8 a day ago | parent [-]

My understanding is that CUI includes both TUI and CLI, and refers to the interface of a text-mode screen (as opposed to a graphical screen — a GUI), where you can use both CLI commands and TUI programs.

So, technically, if you’re using a TUI in a graphical terminal window within a GUI, you’re strictly speaking not in a CUI, but are emulating a CUI within a GUI. And the CLIs and TUIs are running within that CUI.

card_zero 18 hours ago | parent | next [-]

Oui.

snozolli 11 hours ago | parent | prev [-]

I don't agree with that. I first heard CUI used to describe software like the Turbo Pascal IDE. I believe that "CUI" came about when GUI was coined to describe the modern graphical interface like Windows and Macintosh. That was in the latter 80s and early 90s. I've never heard TUI until literally today.

Additionally, TUI is either Text or Terminal User Interface. Either way, it seems to be heavily associated with ncurses. As I understand it, ncurses essentially outputs a stream, which includes things like ANSI escape sequences for position and color. By contrast, CUIs like Turbo Pascal wrote directly to video memory.

layer8 2 hours ago | parent [-]

It’s true that TUI is a newer term than GUI and CUI. However, it isn’t exactly a new term either, its Wikipedia page was created in 2004. Look at the screenshots for illustration of what is considered a TUI: https://en.wikipedia.org/wiki/Text-based_user_interface

Or here some usage of the term in 2002 referring to a Turbo Vision or Norton Commander-like interface: https://www.digitalmars.com/d/archives/c++/dos/75.html

The technical means of how the contents of the TUI is established (character stream with special codes, or direct writes to text-mode video buffer) is largely irrelevant for the term. The essential characteristic is that the visual “state space” of the interface is a character matrix, and that the program treats it as such (instead of just unidirectional line-based output).

Maybe you are right that CUI actually doesn’t cover CLI. The Unix System V documentation uses “Character User Interface” for curses-based interfaces (https://books.google.com/books?hl=en&id=idAmAAAAMAAJ). Then CUI and TUI are roughly synonymous, though TUI is the widespread term nowadays.

skywhopper 15 hours ago | parent | prev | next [-]

You’re missing ‘ed’ (and its predecessor ‘qed’) which is actually a CLI text editor.

pxc a day ago | parent | prev | next [-]

I came here to pick the first of those nits, too. A concrete example that sums it up: sed is a command-line text editor; nano is a TUI text editor.

sjmulder a day ago | parent [-]

Btw, CLI editors can be interactive too: consider ed ("the standard text editor") and DOS' edlin.

holowoodman a day ago | parent | prev | next [-]

you forgot EDLIN

esafak 21 hours ago | parent [-]

'coz it's better forgotten! Who could guess it was made in two weeks in 1980? Anyone who fired it up!

marttt 20 hours ago | parent [-]

BTW, its FreeDOS version is still being updated fairly frequently :) -- https://sourceforge.net/projects/freedos-edlin/files/freedos...

da_chicken 3 hours ago | parent [-]

That's the thing about open source. Some projects are just maintained for fun, not because they're broadly used or the best tools for a job.

wodenokoto 8 hours ago | parent | prev [-]

I forgot how the punchline is phrased, so apologies for the atrocious delivery, but I like the one about “I do all my coding in VIM, because I don’t know how to exit VIM”

simonw 18 hours ago | parent | prev | next [-]

This inspired me to have a try at running Edit on macOS via Docker - here's what I got working (should work for anyone else with Docker installed on Apple silicon too, I pushed the image to the GitHub Container Registry):

  docker run --platform linux/arm64 \
    -it --rm \
    -v $(pwd):/workspace \
    ghcr.io/simonw/alpine-edit
Run that in a directory to open Edit against the files in that directory.

More notes here: https://simonwillison.net/2025/Jun/21/edit-is-now-open-sourc... - and a new TIL on publishing to the GitHub Container Registry here: https://til.simonwillison.net/github/container-registry

You can also compile directly from source on macOS - instructions here, I've not tried this yet: https://github.com/microsoft/edit/blob/main/README.md#build-...

None4U 14 hours ago | parent | next [-]

For Apple's own `container`[1], just remove the `--platform linux/arm64` part, like this:

  container run -it --rm -v "$(pwd):/workspace" ghcr.io/simonw/alpine-edit
I did have to resize my terminal for this to work, but that could be a terminal emulator issue.

[1] https://github.com/apple/container

commandersaki 13 hours ago | parent [-]

This was harder to quit than vim. ctrl-f didn't work and there's no alt on my keyboard; hard pass.

da_chicken 12 hours ago | parent [-]

I don't understand. You don't have an option key, either?

Or are you not on a Mac, PC, or Chromebook?

commandersaki 6 hours ago | parent [-]

On a macbook pro, option key just gave me a ƒ symbol, both in Terminal.app and Ghostty. Anyways, if that was meant to be alt and it requires setup to work, then it's not worth the effort.

Aaron2222 4 hours ago | parent [-]

Terminal.app has a setting "Use Option as Meta Key" that needs to be enabled. It's under the Edit menu as well as in Settings > Profiles > Keyboard (if you want, you can click use Command-A to select all the profiles to apply the change to all of them at once). Ghostty will have a similar option.

Also surprised you haven't encountered this earlier, given it affects all usage of Alt in the terminal.

rfl890 15 hours ago | parent | prev | next [-]

Just wondering, why did you make an entire container image instead of trying to compile it from source first?

simonw 15 hours ago | parent | next [-]

Mainly because I wanted an excuse to figure out how to package tools like this using Docker.

It also felt like a better way to distribute the tool for other people to use: I don't want to distribute a compiled binary (because in macOS you then need to sign it for other people to use it), but a Docker incantation skips that step.

VikingCoder 15 hours ago | parent | prev [-]

Because now I can use their Docker image trivially. They can also trivially use their Docker container on multiple computers, multiple VMs, multiple VPSs. They can Docker Compose it into other Docker images they're setting up, too.

I'm definitely not a Docker expert, but I've become a huge fan.

kinduff 17 hours ago | parent | prev [-]

I built it for macOS natively and it works like a charm!

hiAndrewQuinn a day ago | parent | prev | next [-]

Apropos of the shortcuts here, I always wonder why developers don't go out of their way more often to memorize the Ctrl+C, Ctrl+V, ... shortcuts in use basically everywhere today except the terminal. I believe they stem from the IBM Common User Access (CUA) design standard.

In particular the fact that Ctrl + anything letter-oriented makes something that is word-oriented instead, for example Ctrl + Left Arrow and Ctrl + Right Arrow let you skip word-by-word in documents, and Ctrl + Backspace lets you delete entire words at a time. This feels like it should be way more common knowledge than it is, like how copying and pasting any multiline document into your browser's URL bar will almost certainly format it into a sane single-line format.

layer8 21 hours ago | parent | next [-]

The CUA bindings for Cut, Copy, Paste are actually Shift+Delete, Control+Insert, Shift+Insert.

Microsoft adopted the X/C/V shortcuts from the Macintosh for Windows 3.0 (replacing Command by Control; Alt was already used for invoking menus and the like), in addition to the existing CUA shortcuts (which are still supported and used today).

cxr a day ago | parent | prev | next [-]

> I always wonder why developers don't go out of their way more often to memorize the Ctrl+C, Ctrl+V, ... shortcuts in use basically everywhere

What developer doesn't have these shortcuts memorized? It sounds like you're living in some bizarro world.

skydhash 21 hours ago | parent [-]

I know devs that still right click for copy and paste.

cxr 21 hours ago | parent | next [-]

I don't know what function the word "still" is intended to perform in this sentence. I, too, copy and paste using the context menu—sometimes, i.e.: when it is most appropriate and/or convenient to do so.

But the question is: what developers don't know about the standard keyboard shortcuts for copy and paste? Do they exist in any statistically significant numbers? ("There exists X" is not a very meaningful contribution if the Xs involved are something like 0.01% and are outnumbered by the number of programmers who write all their code on their mobile phone or whose version control strategy is to inscribe all their programs on a Tic Tac or a grain of rice or who think that Commodore 64-inspired homegrown operating systems are specially positioned to reveal the Word of God and offer protection against being pursued and persecuted by the CIA. Or are these some special breed of 9-to-5 darkmatter programmers who aren't going to show up on the radar, anyway?)

jayd16 20 hours ago | parent | prev [-]

Its safer in an unfamiliar terminal than accidentally killing the app with Ctrl-c.

JulianWasTaken 16 hours ago | parent | next [-]

Always a take which sprouts vehement arguments, but this is something macOS gets extremely right, as Cmd-C, Cmd-V, etc. indeed work everywhere including the terminal, and Ctrl-C in the terminal is reliably SIGINT.

3eb7988a1663 20 hours ago | parent | prev [-]

I also criss cross enough different terminals and systems that I never know if it is Ctrl-C or Ctrl-Shift-C. Same with paste.

silon42 19 hours ago | parent [-]

It would be nice if we could use Ctrl+Break instead of Ctrl+C... also, use SysRq instead of Ctrl+Z.

mixmastamyk 15 hours ago | parent | next [-]

Rare to have these on a laptop. Sometimes you can find an non standard alternative key combo.

moffkalast 17 hours ago | parent | prev [-]

Legacy bullshit from the 70s still making people facedesk today and probably for the next hundred years or more. At least ctrl-shift-c and ctrl-shift-v are now somewhat more common.

kule a day ago | parent | prev | next [-]

“Except the Terminal”…

Of course in the Mac you have the same shortcut in every app because you use cmd+c/v

It really bugged me that by default you use ctrl+shift+c/v on Linux but only in the terminal.

Found a lovely feature in kitty term that does the right thing for ctrl+c depending on if you have text selection or not. Works great for me.

sureglymop a day ago | parent | next [-]

Actually, on macOS you have the same shortcuts as gnu readline in any text editing field.

You have these same shortcuts in bash, zsh, the python repl, html form fields, etc. And anything that doesn't use gnu readline can be wrapped in rlwrap.

Note that copying and pasting is an exception. Otherwise, navigating words with shortcuts seems to fairly universally use these shortcuts.

MangoToupe a day ago | parent | next [-]

They're really emacs keybindings that readline adopted if I may be allowed a small amount of pedantry.

nyarlathotep_ 21 hours ago | parent [-]

Appreciate the clarity here; I always wondered which "came first"

culebron21 18 hours ago | parent | prev | next [-]

My experience on MacOS is that every program has different shortcuts regarding text editing. Home/End/PgUp/PgDn on my external keyboard just not working, and if added to system settings, they still don't work in some apps, Ctrl+Left sometimes working sometimes not, etc.

And what Ctrl/CMD/Shift keys do together looks very random, no logic in it. Like, Ctrl+Left in Zsh scrolls the entire log to top, rather than move the cursor to the start of the line.

I use zsh, slack, Chromium, SublimeText and Zed on Mac.

kule a day ago | parent | prev [-]

Yep, which is really handy. I was specifically talking about copy and paste shortcuts being the same even in the terminal though.

hbnjgf a day ago | parent | prev [-]

Unless you are not using X, selected text us also automatically available for copy using the middle mouse button

smokel 19 hours ago | parent | prev | next [-]

There are even developers who do not learn to touch type. Baffles the mind.

Making Caps Lock an additional Ctrl, and using Emacs keybindings (supported in nearly every IDE and on many command lines) makes one even more productive, because your hand doesn't have to travel all the way to where the arrow keys are. (A similar thing can be said about Vi keybindings.)

It is a strange phenomenon that many people do not wish to invest a few hours to make their lives easier later on.

int_19h 4 hours ago | parent | next [-]

It takes way more than a few hours to get used to a new setup like that when you're already very proficient in something else (like using arrow keys).

As for Caps Lock, some of us have good reasons to have it mapped to something else that needs to be done frequently, e.g. switching keyboard layouts.

spauldo 11 hours ago | parent | prev | next [-]

It baffles my mind that a lot of schools don't even offer keyboarding anymore. I took it in high school, and I was fortunate to be born late enough that being male wasn't a barrier (only girls could take it when my parents were in school) but early enough that they offered it at all. Out of all the skills I learned in high school, it's probably the one I use the most.

croemer 19 hours ago | parent | prev [-]

Yeo. I map capslock to Esc and use vi bindings.

enricozb a day ago | parent | prev | next [-]

Since I do not really use Ctrl-X on the terminal to cut text, I have changed my terminal configs to have Ctrl-X be sigint, and Ctrl-C to be copy. Makes for a nicer experience, also X looks more like a "kill" :)

physicles 10 hours ago | parent | next [-]

Wow, in 7 years of daily Linux use, I somehow never thought of doing this. Thank you.

~/.bashrc:

stty intr ^x

~/.inputrc (at the end):

"\C-v": "" # Unbind Ctrl-V

~/.config/terminator/config (in case anyone happens to be using terminator):

[keybindings]

  copy = <Control>C

  paste = <Control>V
adastra22 21 hours ago | parent | prev | next [-]

That makes way more sense.

mixmastamyk 18 hours ago | parent | prev [-]

Nice, but eons of muscle memory to retrain. :-/

culebron21 18 hours ago | parent | prev | next [-]

Because on Ubuntu, they're Ctrl+SHIFT+C/V/X. I've seen Ctrl+C/V not work, and assumed that Bash didn't implement it at all. I've learned the right way casually about 7 years into using Ubuntu.

tzot 17 hours ago | parent [-]

Ctrl-Shift-C/V/X are not implemented in bash; it's the terminal emulator program that handles these. So the default terminal emulator of Ubuntu (gnome-terminal I assume, but ICBW) knows about a “system” clipboard and copies stuff to it and on paste feeds bash with the copied data. If you press Ctrl-Alt-F1 (and F2, F3, depends on your distribution's defaults) you can login and in your login shell, which I understand is bash, Ctrl-Shift-C/V/X have no difference to shiftless Ctrl-C/V/X.

spauldo 11 hours ago | parent [-]

When you press CTRL and a letter or symbol at the terminal, shift doesn't do anything (unless it's required for the symbol, as in CTRL-@). The code that gets sent is the same either way. Emacs users have to be wary when setting custom keybindings because GUI Emacs can see the difference but terminal Emacs can't.

Likewise, ALT just sends ESC assuming you're using the standard US keymap.

jasonjayr a day ago | parent | prev | next [-]

Eons ago, Ctrl-C was mapped to 'Break' on various terminals, which will halt the running program, and was a useful function. Desktop/GUI's mapped Ctrl-C to (C)opy, since the mnemonic made way more sense, and interrupting a GUI program hard like Break tends to do was not very useful.

vintermann a day ago | parent | next [-]

It's not just the mnemonic, it's also that the location on the keyboard makes ctrl-c "prime real estate" so to say, and cutting and pasting is one of the most common and useful things you do.

thaumasiotes 19 hours ago | parent [-]

> It's not just the mnemonic, it's also that the location on the keyboard makes ctrl-c "prime real estate" so to say

Considering the hotkeys for xut and vaste, I think it's safe to say the mnemonic accounts for zero of the decision and the keyboard location accounts for all of it.

andrewshadura 16 hours ago | parent [-]

X is for the scissors, V is for the insertion mark

yoz-y a day ago | parent | prev | next [-]

This is where I find cmd+c/v better. It just works everywhere. On windows win+v works, not sure if win+c does, it’s been a while.

bmacho a day ago | parent [-]

Win+c works too on windows. So does ctrl+insert/shift+insert on the terminals I just tested (cmd.exe, microsoft terminal with tabs, git bash, blue powershell terminal).

Win+c/win+v looks like a good compromise, using the Windows button for OS/DE commands, instead of application commands.

int_19h 4 hours ago | parent [-]

On Win11 Win+C launches Copilot by default these days. Win+X and Win+V also have functions assigned to them that are in no way related to the keyboard.

bmacho 4 hours ago | parent [-]

Eww, that's very unfortunate. Well, so much for a cross-os copy-paste shortcut.

fc417fc802 a day ago | parent | prev | next [-]

Also worth noting that many other ctrl-letter combinations map to signals in the terminal. In all the terminal emulators that I've used shift-ctrl-c & co are mapped by default for clipboard operations.

mprovost a day ago | parent [-]

On terminals, the control key masked off the 6th and 7th bits of the 8-bit value sent by the letter key. That's a bitwise AND with octal 037, or in decimal subtracting 96 from the lower case key value. This happens in the terminal (or keyboard) itself, so the computer doesn't see it as two pressed keys, it just gets the masked value. In ASCII 'c' is 99 (decimal), so when modified with control is 3, ETX (end of text), which teletypes used to indicate the end of text. So unix shells reused that control character to terminate the current program with SIGINT. But every letter key maps to a control character at the start of the ASCII range, like 'g' maps to BEL for the bell, or 'h' maps to BS (backspace). '[' maps to ESC (escape) which is handy when Apple decides to move the escape key on their laptop keyboard.

int_19h 4 hours ago | parent | next [-]

Unless we're talking about ancient hardware terminals, the computer sees the actual raw scancodes coming from the keyboard. Control (whether by itself or in combination with something else) is no different than any other key. It's the software that maps those combinations to ASCII control characters, which is why this works the way you described on most Unices (where, if I remember correctly, it's the tty that is doing the mapping) but not e.g. on DOS/Windows.

tedunangst 15 hours ago | parent | prev [-]

The funny bit is the other six control codes are mapped ctrl-2 to nul, and ctrl-3 forward to the five remaining.

ZoomZoomZoom a day ago | parent | prev | next [-]

> and interrupting a GUI program hard like Break tends to do was not very useful.

I find it extremely useful, GUI or not. Too bad it doesn't work half the time when it matters, especially on Windows.

hiAndrewQuinn a day ago | parent [-]

Alt-F4 is pretty reliable on Windows, but it's not as catchy because no one likes craning their left hand to reach the function key (even though you could just hold right Alt).

tom_ a day ago | parent [-]

Right Alt doesn't exist on all keyboard layouts. On the UK layout it's replaced by AltGr, which doesn't do much appart from fail to act as Alt for Alt+F4 purposes, but it has actual uses in other layouts: https://en.wikipedia.org/wiki/AltGr_key

makapuf 14 hours ago | parent | next [-]

In French and other European countries, #[@{}|\] need altgr. You re using this quite a lot developing on Linux.

thaumasiotes 19 hours ago | parent | prev [-]

Nobody ever uses right alt even if it exists, but it's straightforward to hit F4 with your right hand.

Alt+F4 on Windows has the undesirable property that if you hit it several times, and it works, you'll close several different things. Ctrl-C in the terminal won't do this.

spauldo 11 hours ago | parent [-]

American Emacs-using touch typists use right ALT all the time. ALT-x prompts you for a command, ALT-q in most modes runs fill-paragraph, ALT-f moves the cursor forward by one word, etc.

thaumasiotes 9 hours ago | parent [-]

When I want alt in emacs I use C-[.

whartung a day ago | parent | prev | next [-]

What’s funny is when I started on SCO Unix ages ago, the default break key was DEL.

It quickly morphed into ^C, but the first few months were interesting.

Coming from the VAX, it was ^T.

lupusreal a day ago | parent | prev [-]

The mnemonic logic of the copy shortcut is undermined by the arbitrary paste shortcut. Also, from what I've seem a whole lot of average Joe computer users don't know or use these shortcuts, I think they're a lot further to the power user side of the skill spectrum than a lot of people here might expect.

layer8 21 hours ago | parent | next [-]

The V isn’t arbitrary. Apart from the close location on the keyboard, the V looks like the handwritten mark often used to insert text in a physical document. This is similar to how the X suggests crossing out something.

chuckadams a day ago | parent | prev [-]

On a US keyboard where these shortcuts were developed, you'd have to stretch your hand across the keyboard to reach Ctrl-P. That's why it's Ctrl-V, it wasn't arbitrary.

I miss Sun keyboards and their dedicated copy/paste keys.

Henchman21 a day ago | parent | next [-]

And a control key in the right place. Dammit.

silon42 19 hours ago | parent [-]

I have a conspiracy theory that MS made IBM move the control key to kill WordStar, which had the superior keyboard shortcuts.

physicles 9 hours ago | parent [-]

Seems plausible. If anyone else is curious about the history here, I found [1]:

> The original computer terminals and microcomputers for which WordStar was developed, many running the CP/M operating system, did not have function keys or cursor control keys (arrow keys, Page Up/Page Down). WordStar used sequences of alphabetic keys combined with the "Control" key, which on keyboards of the time was conveniently next to the letter A in the position now usually occupied by the Caps Lock key. For touch typists, in addition, reaching the function and cursor keys generally requires them to take their fingers off the "home keys" with consequent loss of typing rhythm.

[1]: https://www.wikiwand.com/en/articles/Wordstar

lupusreal a day ago | parent | prev [-]

Ctrl-V is arbitrary from a mnemonic sense. "Vaste"?

andrewshadura 16 hours ago | parent | next [-]

V looks like the insertion mark

chuckadams 21 hours ago | parent | prev [-]

eh, vy vaste ze energy zinking about eet too moch ah ha ha...</the-count>

:)=

muixoozie a day ago | parent | prev | next [-]

> like how copying and pasting any multiline document into your browser's URL bar will almost certainly format it into a sane single-line format.

Didn't know that. I learned the other day that one can paste a password into the URL bar and drag it to a password field on the website that's annoyingly blocking paste (on Firefox at least). Probably a bad idea for security reasons (telemetry?). Just found it surprising. Also noticed many crappy sites that block paste will forget to block Ctrl + insert or Ctrl + Shift + v. I usually don't have this problem because the plugin of my password manager usually works..

diggan a day ago | parent [-]

> Didn't know that. I learned the other day that one can paste a password into the URL bar and drag it to a password field on the website that's annoyingly blocking paste (on Firefox at least). Probably a bad idea for security reasons (telemetry?).

You could probably drag it directly from the password manager to the password field, instead of using the URL bar as an intermediate (which indeed is a bad idea as whatever you enter there usually gets sent somewhere).

kevin_thibedeau a day ago | parent | prev | next [-]

IBM didn't invent this scheme. Apple Lisa had Cmd+X,C,V. Early Mac apps switched to K,C,V but obviously they switched back at some point.

teddyh a day ago | parent | next [-]

> IBM didn't invent this scheme.

Ctrl-X, Ctrl-C and Ctrl-V isn’t even part of the IBM CUA specification. CUA places the Cut command at Shift-Del, Copy on Ctrl-Insert, and Paste on Shift-Insert.

scelerat 16 hours ago | parent | prev [-]

cmd-K for Cut? I don't ever remember that on the Mac.

I remember the lower left row on the US keyboard was always the first four operations from the nearly-ubiquitous Edit menu since day one.

    Z - Undo 
    X - Cut
    C - Copy
    V - Paste
Certainly not the flagship apps from Apple. Can you remember an app that did this specifically? I seem to remember even early apps from Microsoft were fairly respectful of the early Mac HIG

Early apps frequently also had "Clear" in the Edit menu, which was like Cut except the cleared item didn't go into the system Clipboard

jonhohle a day ago | parent | prev | next [-]

This has always been one of my favorite aspects of macOS (né OS X). GUI app shortcuts and Terminal control sequences are mutually exclusive where it matters and shared where it’s convenient. I find it very natural to navigate text in any app. I find it surprising that no Linux window manager has taken this approach.

rz2k a day ago | parent | next [-]

It started with “System Software” or “Mac OS” (as opposed to “macOS”), since it was an advantage of using terminal software like ZTerm on the pre-OS X operating system. You could select and copy text without unintentionally sending a break.

BiteCode_dev a day ago | parent | prev [-]

Most terminal now accept ctrl + shit C/V as an alternative on linux.

MangoToupe a day ago | parent [-]

They could also not use Ctrl for gui keybindings and join the 21st century

mixmastamyk 15 hours ago | parent [-]

Very rare to have a Mac keyboard with Cmd on it on a PC. Only common on a Mac with Linux. There it can be reprogrammed but yes, should be better.

int_19h 4 hours ago | parent [-]

If you connect an Apple keyboard to a PC, you'll find out that Cmd is the same as the Win key.

MangoToupe a day ago | parent | prev | next [-]

Oh so IBM is to blame for the worst keybindings imaginable

meindnoch a day ago | parent | prev | next [-]

What do you mean? Ctrl+C is SIGINT. Copy is Cmd+C.

fc417fc802 a day ago | parent [-]

What's cmd? I've only got ctrl, alt, super, and hyper over here. /s

I guess I've also that useless "right click menu" keyboard button that's not even worth repurposing for anything due to the placement making it incredibly awkward to use. I'd be curious to know if anyone here actually uses the ctrl or alt keys that are located on the right.

somat a day ago | parent | next [-]

This is X11 centric but I mapped the largely useless context menu button to the compose key. where it actually gets used.

For those unfamiliar with the compose key it is a superior input mechanism for rare characters that maps a mnemonic sequence to the character in question. you want an ø type compose o /

A tutorial if you do not have a compose key configured, I tend to run a minimal bare bones X11 setup, A more full featured environment may have it's own way of doing it.

map the compose key in ~/.xsession

    xmodmap -e 'keysym Menu = Multi_key'
I also set up a ~/.XCompose mainly because it is fun to add your own

    include "%L" #include the compose file found in /usr/X11R6/share/X11/locale/<localemapping>/Compose
    <Multi_key> <w> <e> <b> : "" # spiderweb
    <Multi_key> <c> <c> <c> <p> : "\xe2\x98\xad" #symbol representing proletarian solidarity between agricultural and industrial workers
https://man.openbsd.org/Compose

I don't know if the compose system is found any where else but I regard it as one of the better things to come out of the X11 project. A little below select / middle click paste.

int_19h 4 hours ago | parent | prev | next [-]

The "right click menu" keyboard button is surprisingly useful if you ever happen to be in a situation where you need to deal with a GUI app without a mouse.

Although these days, chances are good that some things will not be accessible at all, because many devs these days just don't care to do even the basics like submitting dialogs on Enter properly. Historically, though, Windows at least was very thorough in making sure that everything GUI could be operated entirely from keyboard. Much of that is still there, just increasingly obscure - e.g. few people know that Alt+Space will open the same menu that you can get by clicking the window icon in the title bar (the one with Maximize, Minimize, Move, Size etc). Even fewer know that when you pick Move or Size from that menu, you can use the arrow keys to move and resize the window.

teo_zero a day ago | parent | prev | next [-]

> I'd be curious to know if anyone here actually uses the ctrl or alt keys that are located on the right.

You must be located in the US, because the US is probably the only keyboard layout with a right Alt key. All the others have an AltGr key in that position.

I use the right Ctrl key in combination with the arrow, Backspace and Delete keys. Also with Return to enter the same content in multiple cells in Excel.

int_19h 4 hours ago | parent [-]

"All the others" is a rather drastic overstatement. Some European layouts do that. Many non-Latin layouts do not, however. E.g. I can't think of any common Cyrillic keyboard layouts with AltGr.

mkotowski a day ago | parent | prev | next [-]

Many keyboard layouts use the right alt as the AltGr key for additional characters like language-specific letters or currency symbols (or at least many European ones do).

As for the right ctrl, by association with the AltGr, I usually map it as the Compose key.

mprovost a day ago | parent | prev | next [-]

Hmm my Lisp Machine has control, meta, super, and hyper but no alt!

igniuss a day ago | parent | prev | next [-]

A lot of eu keyboard layouts use right alt as alt-gr for special characters. Because of that right control gets a lot of usage since you're using right alt constantly anyways.

orthoxerox a day ago | parent | prev | next [-]

I used to use them back when Ctrl-Alt-Del was something you had to press daily.

justsomehnguy a day ago | parent | prev [-]

Hello there, Mr. I-Only-Have-a-Left-Hand.

I use the right control keys, I use Ctrl+Ins/Del, I use "Context menu" key, when it's available. And hey, I have almost a 30 years of muscle memory for them, so when some another idiot replaces the right Ctrl with F23 (which even can't be remapped by default AND pops up the stupidest menu for selecting what F23 should do) I really what to punch him in the face.

NB: as someone up in the thread mentions, right Ctrl is extremely useful for navigating in the text.

kgwxd a day ago | parent | prev | next [-]

> developers don't go out of their way more often to memorize the Ctrl+C, Ctrl+V

I get freaked out enough seeing devs that can't touch type. Now you're telling me there's a large number that also don't know the copy/paste shortcuts!?

stronglikedan a day ago | parent | next [-]

One of my juniors could not only not touch type, but would hit caps lock, type a letter, and hit caps lock again - every time they wanted to capitalize a word. They just happened to go on to become the most successful dev I've ever mentored and have now forgotten about us little guys, but I always wondered if they still did that.

floam 21 hours ago | parent [-]

I knew someone smart who did that and it ended up being related to them having shift bound since they were a child to something they used differently than me, to change their inputs to Chinese pinyin.

thaumasiotes 14 hours ago | parent [-]

In Microsoft's input method, shift will toggle you between ascii input and pinyin input while not switching you out of the pinyin input method environment.

I tend to use win+space, which instead toggles the input method you're using, as opposed to toggling how the pinyin input method interprets your input. But I had to learn about this secret special functionality of shift, because (some time ago; I don't know if it's still true) after switching your input method with world of warcraft running, the chat UI in the game would become nonresponsive.

After all, who ever heard of wanting to switch between different languages while using a chat interface?

teo_zero a day ago | parent | prev | next [-]

> I get freaked out enough seeing devs that can't touch type.

Do you get freaked out the same way seeing professional drivers that don't race? I've never related the speed of typing to the quality of coding (maybe to the quantity, but not a reason for being freaked out).

appreciatorBus a day ago | parent [-]

I don’t think the concern is that they cannot type really really fast as in your comparison of professional drivers who don’t race.

In any domain where typing is the dominant activity, it would make sense to invest the small effort it takes to learn to touch type, and to learn basic keyboard shortcuts. You don’t have to reach 120 words per minute for the investment to pay off.

I used to be a one or two finger typist. Eventually, I took a touch typing class. For a long while it seemed like a waste of time. I could already type with one or two fingers at 40 words per minute. However, as I became proficient with touch typing, and as my touch typing speed approached my hunt and peck speed I started to realize what a powerful technique it was. I no longer needed to look at the keyboard, and my thoughts more easily flowed into the computer. This was a qualitative difference, not just about speed.

To continue the driving metaphor, IMO a driver who has had some basic driver education, and achieved some basic level of familiarity with the machine, will be a better driver, even if they never go faster than 40 miles an hour.

thaumasiotes 14 hours ago | parent [-]

> I used to be a one or two finger typist.

> as my touch typing speed approached my hunt and peck speed I started to realize what a powerful technique it was. I no longer needed to look at the keyboard

There's no connection between these things. I use two (sometimes three) fingers per hand. Do I need to look at the keyboard? Of course not.

I don't need to look at the keyboard because, when I would sneak downstairs to use the computer at night, I didn't want to turn on the lights.

Quarrel a day ago | parent | prev | next [-]

I'm more worried that there might be lots of devs that can't send a sigint!

petepete a day ago | parent | prev | next [-]

Also the number who click around to position the cursor when they could hold ctrl and skip there in a fraction of the time. Same goes for shift and highlighting.

vintermann a day ago | parent [-]

There are old studies from the 70s showing that moving the cursor with mouse is faster than navigation keys. Tog famously claimed that Apple's internal studies consistently showed that mouse felt slower than it actually is, whereas keyboard navigation felt faster.

hbnjgf a day ago | parent | next [-]

I guess it depends on the distance. If you are currently typing and need to get to the beginning of the word, obviously it's way faster to navigate using the keyboard than the mouse.

If instead you need to navigate somewhere you don't exactly know the location of, scanning and clicking is faster.

Then again, if you happen to know the exact location, going there by command is much faster

fc417fc802 a day ago | parent | next [-]

Selecting text is also a good example where the mouse is faster. One of the few for me. Having to switch modes, move to a line, then move to a character, then repeat that, is quite cumbersome in comparison.

I'll take good keyboard controls for pretty much anything else though.

skydhash a day ago | parent [-]

With Vim and Emacs, you have nice commands for getting to an exact position. And if you're replacing, you don't need selections. Selection is mostly for copying, cutting, and applying commands.

skydhash a day ago | parent | prev [-]

> If instead you need to navigate somewhere you don't exactly know the location of, scanning and clicking is faster.

Search is better especially with code. I used emacs and vim more than other editors, so I got use to their navigation shortcut. And on macOS, the trackpad is nice and convenient. But I still prefer search and paging shortcuts when I need to scroll.

petepete a day ago | parent | prev [-]

I'm not sure it'll hold up when you factor in moving your hand between the keyboard and mouse repeatedly.

Skipping forward 3 words on the line, for example, could be ctrl+right ×3.

I can do that faster than I can move my hand from the keyboard to the mouse, let alone drag it around.

lupusreal a day ago | parent | prev | next [-]

I know them but I virtually never use them. I've used X for more than 20 years and almost exclusively use the highlight and middle click method (outside of emacs, in which case I use evil bindings)

FirmwareBurner a day ago | parent | prev [-]

>devs that can't touch type.

Hey, that's me :)

Out of curiosity, why is this a yardstick for SW developers? I assumed the more valuable skill of the profession would be critical thinking and problem solving skills, not finger dexterity on pressing buttons without looking. That's why I didn't become a secretary or court stenographer.

I mean, a lot of doctors can't hand write for shit, but is that in anyway relevant to being a good doctor?

What about SW devs with handicaps or mobility issues?

Touch typing feels like a pretty niche hill to die on.

hiAndrewQuinn a day ago | parent | next [-]

It's a signaling mechanism more than anything, as you can see from the other responses here.

"I can touch type" == "I spend enough time writing things on the computer every day that I have invested in the fluidity and comfort of my own hands" == "I'm enough of a nerd to actually be good at my job".

But it's also worth it from an ergonomics standpoint. I learned to touch type over the space of a few weeks of practice, meant years ago, and it's the reason I can use a split ortho keyboard today, which is much nicer on my wrists than the alternatives. I can also keep a notebook between the two keyboard halves which is much nicer to scribble on than having it to the side somewhere.

FirmwareBurner a day ago | parent [-]

>"I have invested in the fluidity and comfort of my own hands"

That's exactly why I don't touch type.

Forcing my hands in the optimal "home-row" positioning for touch typing gives me wrist pain. Moving my hands towards my most comfortable position disables the ability to touch type.

>It's a signaling mechanism more than anything, as you can see from the other responses here.

Firstly, what if that type of signaling is flawed and might even be discriminatory if applied to screening people for an actual job, especially that SW devs conder themselves highly liberal and open minded to diversity.

Secondly, I also can't fathom how keeping my eyes focused on one screen continuously for long periods is healthy for them versus exercising them having to occasionally refocus towards the keyboard and back.

Thirdly, even if I would touch type, my job needs me to take my eyes of the "IDE screen" occasionally to look at other things like datasheets, PCBs, notes, etc. Then the amount of distractions in the office far outpace any supposed efficiency gains from not having to take my eyes off the screen, so there's no benefit to it anyway as the job has many other bottlenecks.

Reading the comments on this thread, makes me feel like I'm watching that scene from American Psycho where they're all in their bubble flaunting and judging each others' business card designs when they're all the same design. Glad I don't work with such judgmental individuals who scrutinize such pointless details like the way you type, as if their way is the only right way. Must be a nightmare.

>"I'm enough of a nerd to actually be good at my job".

Well then, I guess I'm lucky to be good at my engineering job without the way I type being an issue.

skydhash 21 hours ago | parent | next [-]

Let me start by stating that touch typing is orthogonal to coding well.

The nice thing about touch type is to not think about typing. One quick glance to position your hands on the home row (there’s helper on F and J), and then whatever you want to write just flow out. While I use two thumbs to type this on mobile, I’m mostly using my peripheral vision. Typing on a real keyboard is better as I have better feedback and can use all my fingers.

It’s only one reason: No need to think about typing, it’s all muscle memory.

FirmwareBurner 21 hours ago | parent [-]

Not sure why you assume people who don't touch type actually need to think about typing.

icedchai 19 hours ago | parent | next [-]

Yes. I don't "touch type" in the traditional way. I have my own technique I developed when I was a teenager. I don't look at the keyboard and I don't "hunt and peck". I basically use index/middle/ring fingers on each hand for most of the keyboard, thumbs mostly handle the spacebar and alt keys, left pinky is mostly for shift, control, tab, right pinky is mostly for return, backspace, arrow keys, etc.

cdash 17 hours ago | parent [-]

Same here. Whatever I do could not be defined as traditional touch typing but it kind of works. I definitely do not look at the keyboard at all but my fingers kind of just hover over the keyboard instead of resting on the home row.

wredcoll 20 hours ago | parent | prev [-]

Because that's the definition of touch typing. What did you think it meant?

Also signals are heuristics and thus important because it's impossible to evaluate everything from first principles every time.

FirmwareBurner 19 hours ago | parent [-]

>Because that's the definition of touch typing

Touch typing means not looking at the keyboard while typing, not not-thinking about typing.

>What did you think it meant?

What do YOU think it means?

Can't you not touch type while still not thinking about typing?

Am I the only human capable of doing an activity while not thinking about it?

hiAndrewQuinn a day ago | parent | prev [-]

I never said I thought it was a good signal. Please don't go around shooting the messenger like that.

FirmwareBurner a day ago | parent [-]

I think you misunderstood me or I made myself misunderstood. I wasn't "shooting" you, I know what you were saying, I have no issue with your PoV.

I chose to reply to you while addressing the rest of the comments since yours distills them, so it makes sense to reply to all in one comment than to each individually. Apologies for the misunderstanding.

sureglymop a day ago | parent | prev | next [-]

I would personally say that you should ignore it.

Programming isn't bottlenecked by how fast you can enter or type text, it is about focusing and thinking and then solving a problem. In other words, being able to enter text faster does not imply also being able to solve a problem faster.

I would even say that on the contrary, taking longer and reflecting on what you are typing more may perhaps result in a better quality solution of the problem being solved.

orthoxerox a day ago | parent [-]

It's not bottlenecked, but it's much easier to think about a problem if I don't have to think about typing at the same time.

CactusRocket a day ago | parent | prev | next [-]

Thoughts go faster than fingers. It's already hard enough to keep up with my stream of thoughts when coding, when I'm touch typing pretty fast. I can't imagine my coding experience if I had to look at the keyboard to input my thoughts into the editor. It's subjective, everyone has a different experience, but I feel I would be severely impaired.

climb_stealth a day ago | parent | prev | next [-]

Consider me amazed! I would have thought it's something people pick up naturally by virtue of spending hours every day working with a keyboard.

I wouldn't link it to competency as a dev.

EduardoBautista a day ago | parent | prev | next [-]

It’s exactly because of having more valuable things to do that you should have typing just be a subconscious act instead of having to take your eyes off the monitor all the time.

chuckadams a day ago | parent | next [-]

I'm pretty sure most devs who can't touch-type aren't hunting and pecking either. I never learned the "proper" home-row technique, and type with four fingers most of the time, but neither am I looking down unless I'm making enough typos that I need to realign my fingers. No one gives me crap about that because well, the people I hang around with just aren't that damaged.

mbeex a day ago | parent | next [-]

Did this for 30 years. Two years ago I finally took the time to acquire the whole thing.

There is no way back. Relaxed posture, no UI elements stealing my focus unnoticed, parallelism (partially): continually "big-picturing" text; speaking with people while typing. The rhythm of this motoric skill and his quite specific form of memory alone, strangely decoupled from and coupled to the other mental processes at the same time, the interplay is simply marvelous.

chuckadams 21 hours ago | parent [-]

I grew up on all those "typing tutor" programs, and hated every moment of them, even the extra-game-ified ones. But at least they weren't high school typing classes like my gf took, those seemed like some proper sweatshop training. Would love to learn piano too, another thing I couldn't focus enough to make happen, but I guess I'm more comfortable now knowing my limits, and there's worse things to regret ¯\_(ツ)_/¯

kstrauser 21 hours ago | parent | prev [-]

If you’re not looking at your hands, you’re touch typing.

I move my hands around as I type, too. I learned piano before typing, and it’s weird to me to try and keep them in one place. I type as fast as I’d ever want or need to, though, so I couldn’t care less if it’s not “proper”. I’d still say you and I both touch type.

skydhash a day ago | parent | prev | next [-]

Yes! It's quite nice not to have to think about typing. Just like you don't monitor the way you're handling a pen when you write. It's not related to being a good developer, but when you type as much as you do, having it done quickly and with the help of muscle memory helps with cognitive load.

In other words, the only thing I think about is what to write, not how I do it.

moron4hire a day ago | parent | prev [-]

Exactly. Because of this, I tend to think that there are no useless skills, or skills not worth refining as far as possible. Sure, there is contention for which skill you refine now, but asking yourself "should I get better at X?" in isolation should almost always get answered "yes". The more things you're really good at (typing, mental math, sharpening a knife, fixing your computer, navigating and merging git commits, cooking food, cleaning house, etc), the less time you'll spend on each thing, giving you more time to do other things.

Plus, writing code is not the only kind of typing that I expect a developer to do. Even if I could accept that typing speed is not important for writing code, it's certainly important for writing documentation, good commit messages, communication with team mates and stakeholders, etc.

bee_rider a day ago | parent | prev | next [-]

Touch typing is not super useful. I picked it up naturally over time, but it was just an accident. In general, the desire to type fast is a symptom of insufficient automation.

It is sort of nice to turning your laptop screen red and dim, and code on a dark porch at night (OLED screen required to get real darkness). Just you, the vim, and some fireflies. Your eyes will adjust to the darkness, and maybe you’ll see some animals that you don’t normally see.

rpdillon 21 hours ago | parent | prev | next [-]

I started programming in grade school, and never learned to touch type. I was faster than my teachers, and ended up becoming a professional dev without touch typing.

When I was 29, I got very bad RSI in my right wrist, and re-evaluated my whole computing life as a result: switched to dvorak, removed the mouse/touchpad in favor of keyboard-centric tools, and swapped to a trackball when the pointer was needed. I also learned to touch type.

Of all the changes I made, I think the one with the most lasting value was touch typing. I didn't want to learn it, but I just bit the bullet, and I'm glad I did. It makes doing everything else on the computer very fluid and comfortable. It sounds like the touch typing position doesn't work for you, but the core point is that being able to effortlessly interface with the machine while your eyes can do something else is empowering.

I bothered writing this because I spent decades both before and after learning to touch type, so I feel I have some perspective on how they compare.

wredcoll 20 hours ago | parent [-]

Did "touch type" get redefined to "using a very specific set of finger positions for each key" or something? I thought it was just typing without looking at the keyboard...

marssaxman 19 hours ago | parent [-]

The term "touch typing" could be taken to literally mean just typing without looking at the keyboard, but in practice it usually refers to the style of typing where the eight fingers all rest on the home row.

hbnjgf a day ago | parent | prev | next [-]

As a software developer, written communication is your main output -- no matter whether it's code, Mails, documentation or presentations

Unless you are thinking slower than you are typing, you should invest in learning a basic and very easy skill

bena a day ago | parent | prev | next [-]

The main output of doctors is not written notes though.

Our main output is typed code.

Yes, our most valuable skill is critical thinking. So I don’t want to waste time and thought on wondering where the “f” key is. If I’m thinking about typing, I’m not thinking about the problem.

fc417fc802 a day ago | parent [-]

> Our main output is typed code.

Pretty sure my main output (at least by volume) is text files detailing things such as requirements, implementation strategies, and algorithmic tradeoffs.

dlachausse a day ago | parent | prev | next [-]

I see it as being willing to invest time into your craft. A few hours spent learning to touch type will save countless time over a lifetime.

It’s an invaluable skill not just for developers, but for anyone whose job requires frequent typing.

reaperducer a day ago | parent | prev [-]

Out of curiosity, why is this a yardstick for SW developers?

In my college, if you couldn't type 40 WPM, you didn't graduate.

financypants 16 hours ago | parent | prev | next [-]

i use ctrl + <key> quite often but didn't know about ctrl + backspace! Also, I think mac's cmd + shift + left arrow or right arrow work so well.

slashdave 21 hours ago | parent | prev [-]

> Ctrl+C, Ctrl+V

You mean CMD+C and CMD+V, right?

orsenthil 20 hours ago | parent | prev | next [-]

Does anyone know who is the original author of this tool. I tried it on Linux and it is excellent! The usability, simplicity and intuitiveness. I remember I must have used this first, before I got into linux. But then the linux editors, like nano, ed, vim, emacs - with all the religious , political and passionate developers, didn't manage to pull up this intuitive interface. Even a simple copy of the design would have helped a new comer to linux, instead of presenting them with Nano as the default editor.

spauldo 11 hours ago | parent | next [-]

It has the "feel" of a DOS program. I'm not saying that's a bad thing, just that it feels a bit alien on UNIX.

The first UNIX system I learned on had pico, the editor nano was modeled after. I personally found it intuitive enough, but too simple in the long run. Editors like nano or DOS EDIT are great for light use, but you reach their limitations pretty fast if you do a lot of serious editing.

userbinator 17 hours ago | parent | prev | next [-]

I guess it's someone who worked at Microsoft in the late 80s/early 90s:

https://en.wikipedia.org/wiki/MS-DOS_Editor

augusto-moura 16 hours ago | parent [-]

I vividly remember using edit on an Windows XP (or was it a 98?) when I was a kid. It was one of those hidden commands that I learned while watching my uncles and father do trickery in CMD

Edit: just read https://devblogs.microsoft.com/commandline/edit-is-now-open-... and it seems that all 32bit windows versions had edit. I was probably using Windows XP 32 the last time I remember using edit

augusto-moura 16 hours ago | parent [-]

I also remember that tried running edit on windows 8 and got surprised that it was removed

suby 15 hours ago | parent | prev | next [-]

I remember the author posting on a HN thread a month ago

https://news.ycombinator.com/item?id=44034961

mixmastamyk 14 hours ago | parent | prev | next [-]

I looked for similar for twenty years. Including compiling my own version from setedit, a clone of a turbo pascal ide. Ten years later someone mentioned “ne” which was acceptable and packaged.

Several years ago the better micro was born then packaged, I’ve used since. It has more features than edit like highlighting, though missing a menu. That’s good enough I think.

In some situations like constrained environments (openwrt) I use nano with CUA keybindings because micro is too big.

lbruder 3 hours ago | parent [-]

have you tried mcedit? It's the editor mc (Midnight Commander, a Norton Commander clone) brings along, looks and feels like the old DOS editor, but has more features

jacooper 15 hours ago | parent | prev [-]

Micro is much more intuitive than nano, but I think Edit is better. Just need it to start rolling out to production distros.

seabrookmx 4 days ago | parent | prev | next [-]

I checked this out. It's kind of neat. It's barebones from a programming perspective though.. it didn't seem to have syntax highlighting out of the box for example.

If you want a TUI text editor with CTRL-C/V and mouse support, I'd recommend looking at micro: https://github.com/zyedidia/micro

Milpotel 4 days ago | parent | next [-]

I used micro for some years but recently switched to https://github.com/craigbarnes/dte. A lesser known, more 90s-like, alternative I used several years ago is ne: https://github.com/vigna/ne/.

pepa65 4 days ago | parent [-]

Craig Barnes is epic. Great, versatile editor, dte.

sheepscreek a day ago | parent | prev | next [-]

Back when I was in school (like junior/middle school), we would program in a DOS based IDE call QuickBasic, and eventually Turbo C++ (in higher grades/high school). That blue background is so nostalgic.

For quick editing, my go to is vim. It’s a real superpower to have if you’re confined to the terminal. However, in the modern post-AI/vibe coding days with super fast AI completions and agentic editing, I think GUIs are the way to go. They make the constant context switching more seamless. Whereas terminal editors work best for very focused zen coding. That’s just my opinion.

adhamsalama a day ago | parent [-]

There are several AI plugins for Neovim. Copilot's auto complete seems to be working fine.

sheepscreek 15 hours ago | parent [-]

Indeed - AI auto-completion works well. But chat and more conversation heavy workflows were not available back when I tried it (granted it was over a year ago).

I think Claude Code + vim might be a better solution. You’re using the best tool for the job - Claude Code for agentic assistance and vim for editing + review.

marssaxman 19 hours ago | parent | prev [-]

Years ago I wanted a TUI text editor with ctrl-C/V, so I wrote one. I've been using it every day, ever since:

https://www.github.com/marssaxman/ozette/

I didn't care about mouse support, though.

czarit 21 hours ago | parent | prev | next [-]

Really interesting development approach here. On unix, this depends on _one_ crate: libc. That crate is just a bunch of wrappers for libc. Absolutely everything else is implemented in the project itself. This is kind of baffling - they have their own everything (from base64 library to a cross platform terminal handling system) instead of using well-proven crates like termios. Why? I don't know. But very unusual in the rust world

easton 21 hours ago | parent | next [-]

Guessing it’s because it needs to go everywhere Windows is and they didn’t want to have a target on their back from pulling in a bunch of dependencies that they’d have to prove were safe. (Especially since Windows installs where this editor works may not get frequently updated, like embedded)

It might have been faster to just write the code they needed vs consult a lawyer and local security person for every crate they wanted to pull in.

JdeBP 21 hours ago | parent | prev | next [-]

Go and read https://news.ycombinator.com/item?id=44031529 . The developer xyrself is in the comments talking about the choices that were made and the alternatives that were considered.

lelanthran 16 hours ago | parent | prev [-]

The author answers it themselves: https://news.ycombinator.com/item?id=44034961

I agree with pretty much all of their reasoning.

jll29 a day ago | parent | prev | next [-]

Works like a breeze.

Make sure to add

  alias edit=msedit
to your ~/.profile for full "DOS compatibility".
aa-jv 4 days ago | parent | prev | next [-]

I wonder if anyone has ever given any druthers to porting PC-Write to linux ..

https://en.wikipedia.org/wiki/PC-Write

I must have written a million lines of code with PC-Write in the 80's .. seems kind of odd to me that it has just disappeared into oblivion, given that its an extremely powerful editor.

Huh, the source is out there somewhere .. might be a fun Lazarus/Free Pascal project one of these days ..

Y_Y a day ago | parent [-]

Noun

druthers pl (plural only)

(US, informal, often humorous) Wishes, preferences.

VagabundoP 6 hours ago | parent | prev | next [-]

I started computing in the early 80s and have always wondered why there wasn't a standard keyboard button with Cut,Copy,Paste.

Thing of all the (wo)man-hours in computing lost due to the slight difference in people finding the modifier key+key (including the slight increase in error rates) and the just having a dedicated Cut/Copy/Paste keys.

int_19h 3 hours ago | parent | next [-]

I remember some keyboards in 90s to early 00s - back when tall keycaps were the norm - having secondary labels written on the side of the key facing the user, usually indicating the standard Windows shortcut for that key. The exact set would vary, but pretty much all of them labelled X/C/V as Cut/Copy/Paste. Here's a good example:

https://www.reddit.com/r/keyboards/comments/w72hiw/ive_been_...

It was certainly convenient for people learning the ropes. Too bad it died out when chiclet keyboards became the norm.

skissane 6 hours ago | parent | prev [-]

Sun workstations had Cut/Copy/Paste buttons on their keyboards. Probably some other workstation vendors did too.

It just never made it to the PC or Mac worlds

AbuAssar 2 hours ago | parent | prev | next [-]

there is also Midnight Commander Editor (mcedit), which has syntax highlighting, macros, code snippets and automatic indentation!

posix86 a day ago | parent | prev | next [-]

I wish they'd port the windows terminal to linux. It somehow allows to use ctrl + c for both cancelling processes and copying text. I'm still sometimes opening dev tools in chrome bcs of the annoying ctrl + shift + c.

tialaramex a day ago | parent | next [-]

I wish any of the supplied terminals and shells for Windows were even halfway decent.

At first I tried really hard to use these tools, since my work laptop runs Windows, but gradually I accepted that no, even the experienced users aren't doing any better, these tools are just worse than the ones I was used to, and so I use a Unix shell and terminals designed to run those shells instead.

There were Windows/ Microsoft tools where I found things to like. C# is at least arguably a better Java for example. But a lot of the things I expected to find had benefits were just disappointing.

zadjii a day ago | parent [-]

What complaints do you have with the Windows Terminal specifically? I can get having issues with CMD or PowerShell - they're very non-unix-y. But WT itself is probably one of the most feature-complete terminal emulators out there these days. I'd love to know what you think it's missing

tialaramex 19 hours ago | parent [-]

The thing that specifically makes me sigh every single day is that I start a power shell, the terminal opens and it displays most of the greeting, but only later, maybe in a few seconds, or when I click it, the rest displays. Arguably that might be a power shell bug but it's annoying and the same people made both. It's a bad smell, did anybody QA this?

Some time during my day I'll forget that because Microsoft's engineers have apparently seen a real Unix but have little or no experience living with one they've decided PRIMARY and CLIPBOARD are the same thing. This is another one of those things like doing MAC and encryption in the wrong order, or not realising you need a new variable (with the same name) for each iteration of your loops, where it makes sense if it's 1975 and this isn't yet common knowledge, but this is 2025, fucking ask someone.

There are more annoyances, but those are the biggest two.

mixmastamyk 13 hours ago | parent [-]

Does windows have two clipboards? Don’t think so, although could be implemented I suppose. Some won’t like it as well.

3836293648 5 hours ago | parent | prev | next [-]

Just don't use the C-c clipboard anywhere?

If you want consistency, just use the other one?

drdunce a day ago | parent | prev [-]

Although most terminals (stty)/UI wrappers/multiplexers etc. would allow this as a configuration, I believe ElementaryOS and others are deliberately setup out the box to offer a Windows-like experience, including preserving keyboard shorts, without further configuration if this is what you seek.

jmmv a day ago | parent | prev | next [-]

About a year ago, I wrote https://open.substack.com/pub/blogsystem5/p/a-cli-text-edito... , which covered the history of editors in DOS and Windows. The article was sparked precisely by the GitHub issue in which Microsoft was proposing re-adding a text editor to Windows and the heated debate that followed.

neoden a day ago | parent | prev | next [-]

What font is on the screenshot? https://github.com/microsoft/edit

wlkr a day ago | parent | next [-]

I think it's Maple Mono.

https://font.subf.dev/en/

https://github.com/subframe7536/maple-font

lhecker a day ago | parent [-]

It's indeed Maple Mono. I love that font!

muziq a day ago | parent | prev | next [-]

Cascadia Code ? https://github.com/microsoft/cascadia-code

moefh a day ago | parent [-]

That's not it, the lower case 'a' is very different.

CactusRocket a day ago | parent | prev [-]

Could it be Consolas? It would make sense I believe it's the default monospace font on recent Windows.

declan_roberts a day ago | parent | prev | next [-]

I love the UI. Its completely unlike vim or eMacs, and a the design makes me nostalgic for the windows 3.0/dos days.

Y_Y a day ago | parent [-]

It is certainly nothing like an eMac.

https://en.wikipedia.org/wiki/EMac

nop17 5 hours ago | parent | prev | next [-]

It state support macos but in release section there is no macos package.

__MatrixMan__ 11 hours ago | parent | prev | next [-]

I hate Microsoft's naming strategy here. "code", "edit", it's nearly as bad as "meta" and "X".

We're on a slippery slope towards DFW's subsidized time. Year of the depend adult undergarment, here we come.

culebron21 18 hours ago | parent | prev | next [-]

I'm surprised nobody in the comments mentioned Norton Commander, and its editor. It was mostly enough for file editing. And navigating folders in DOS with NC was very convenient, that at the time you didn't even understand why people needed windows.

Today, it has successors: Midnight Commander (TUI on Linux), FAR Manager (TUI for Windows), Windows Commander (graphical UI, Windows).

Although MC is good tool, I notice something rubs me the wrong way in it, and I rarely use it -- probably, it's the conflict of focuses between a panel and the shell. E.g. you typed something, then tried to move to another folder, hit enter -> MC decides you run the command, hides the panels, lets the system yell at you "no such executable".

int_19h 3 hours ago | parent | next [-]

Far Manager isn't just for Windows anymore:

https://github.com/elfmz/far2l

Debian even has it in the official repos. It's also on Homebrew.

wonger_ 12 hours ago | parent | prev [-]

I just opened mc and mcedit yesterday for the first time. Mcedit was sorta interesting but I'm already too vim-brained. How would you change mc to make it more intuitive?

culebron21 4 hours ago | parent [-]

I don't know, I relied on it to edit configs over SSH, and navigate servers file systems that way (it sort of gives a better feel what's where), but locally I used SublimeText.

k3vinw 19 hours ago | parent | prev | next [-]

Is it only the keyboard shortcuts that they’re borrowing from VS code? I hope they have plans for LSP and extensibility.

lhecker 19 hours ago | parent [-]

The plan is indeed to make it extensible if time and popularity permits it. LSP would be an extension itself, however, instead of being built into the editor. We want to retain a lean core editor so people can ship it everywhere (e.g. even into small Docker images).

k3vinw 12 hours ago | parent [-]

That’s excellent. Thanks for sharing and best wishes to the team’s success and popularity of the new editor!

waynecochran 15 hours ago | parent | prev | next [-]

I remember using Brief in DOS back in 1990 or so. It rocked. I have been an emacs guy in the Linux world, but I would love to have Brief again.

tedunangst 4 days ago | parent | prev | next [-]

That sound you hear is all the old men yelling at clouds that a full screen terminal editor is not a CLI editor.

HarHarVeryFunny a day ago | parent | next [-]

Right - if you can't use it on teletype, then it's not a CLI editor.

JdeBP 4 days ago | parent | prev [-]

There have definitely been two so far. (-:

* https://mastodon.social/@cks/114704709419805125

ChicagoDave 13 hours ago | parent | prev | next [-]

Or just use nano like most VIM haters.

russellbeattie 15 hours ago | parent | prev | next [-]

A few months ago there was a front page article looking back at WordPerfect for DOS. I commented that modern text-based apps never seem to look as good as mid-80s DOS apps for some reason. So it's apropos that Microsoft of all companies launches an old-school app like this.

T3OU-736 14 hours ago | parent | prev | next [-]

Another text editor from the makers of Edlin. (Sorry, could not help myself!)

ajaypradhan 19 hours ago | parent | prev | next [-]

Ff

quantadev 20 hours ago | parent | prev | next [-]

Will be great to disabuse people from using VIM.

I mean in VIM you can't even easily exit. I've always had to literally reboot my computer to get out of VIM. One time even that didn't work, so I had to pull the main circuit breaker in my house to get it to quit.

rand17 16 hours ago | parent [-]

I simply bought a new laptop.

quantadev 15 hours ago | parent [-]

Ah, what we call the "Nuclear Option for Vim Exiting". Only if all else fails.

JdeBP 4 days ago | parent | prev [-]

This article is a pile of rubbish from top to toe. Starting with the conflation of TUI with CLI, and ending with the claim that one has to extract it from an archive afresh "each time you want to use it".

Microsoft hasn't designed a new text editor to "avoid VIM memes". It has re-implemented its old EDIT editor, which was a DOS program with a PIF on Windows NT, and which came out with MS-DOS 5 in 1991. There weren't silly "VIM memes" in 1991. Indeed, Stevie had barely turned into VIM in 1991.

The original announcement was discussed on Hacker News about a month ago.

* https://news.ycombinator.com/item?id=44031529

And the idea that "Windows devs are forced to fire up Notepad" is just risible. Even by 1991 there was a wide array of text editors available in the Microsoft world. EDIT was over half a decade late to the party. DR-DOS had had EDITOR for a while. And if memory serves E and T2 were already in IBM's PC-DOS and OS/2.

* https://news.ycombinator.com/item?id=44041533

It was pointed out back in 1991 that it was late to the party. Quite how someone from the world of Ubuntu can think that there are no text editors in the Windows world in 2025 apart from Notepad and so developers are "forced", its word, to use it, boggles the mind.

* https://news.ycombinator.com/item?id=44037559

Anyone who actually does Windows development, and has probably discussed with other developers the merits of the various editors available, from MobaEdit through EditPad, WordPad, Brief, CodeWriter, and many others to Notepad++, would question the apparently zero knowledge that has informed this piece.

tialaramex a day ago | parent | next [-]

Although there are vim memes, the whole "Oh no, I'm trapped in the editor" problem with modal editors is certainly there for vi which begins in the 1970s.

By 1994 when I was first using vi, (not vim) the rather faded "cheat sheet" I was handed already had remarks about the need to teach beginners how to leave the editor. I think I went years writing :q! which isn't the fastest way out but does do what I meant.

croes 21 hours ago | parent | prev [-]

> Windows devs are forced to fire up Notepad

I think that’s a joke