Remix.run Logo
hiAndrewQuinn a day ago

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

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_ a day ago | parent [-]

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

culebron21 a day 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

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 a day ago | parent [-]

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

cxr a day 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 a day ago | parent | prev [-]

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

JulianWasTaken 21 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 a day 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.

dotancohen 18 minutes ago | parent | next [-]

Try Shift-Insert. Works everywhere, never overloaded by something destructive.

silon42 a day ago | parent | prev [-]

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

mixmastamyk 21 hours ago | parent | next [-]

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

moffkalast a day 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.

smokel a day 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.

spauldo 16 hours ago | parent | 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.

int_19h 9 hours ago | parent | prev | 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.

croemer a day 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" :)

dotancohen 15 minutes ago | parent | next [-]

I used to do similar bindings, but one mistype of muscle memory on somebody else's box, or in an SSH session, will teach you not to do that.

Do you want to be productive on your own snowflake system, or employable?

physicles 15 hours ago | parent | prev | 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 a day ago | parent | prev | next [-]

That makes way more sense.

mixmastamyk a day ago | parent | prev [-]

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

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

mixmastamyk 32 minutes ago | parent [-]

IC, though the Win key has useful shortcuts assigned as well. But I suppose they could be sacrificed and/or remapped.

culebron21 a day 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 a day 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 16 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 a day 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 21 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 9 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 9 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 9 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 20 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 20 hours ago | parent | next [-]

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

thaumasiotes a day 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 16 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 14 hours ago | parent [-]

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

spauldo 5 hours ago | parent [-]

I suspect you're in the minority there.

thaumasiotes 3 hours ago | parent [-]

I can believe that.

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 a day 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 a day 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 15 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 21 hours ago | parent | next [-]

V looks like the insertion mark

chuckadams a day 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 21 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

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.

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

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

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 a day 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 19 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 19 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.

bjornasm 2 hours ago | parent | next [-]

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

What if I told you that touch typing means you could do that while you are typing.

skydhash a day ago | parent | prev | 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 a day ago | parent [-]

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

icedchai a day 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 a day 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 a day 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 a day 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 a day 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 a day 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 a day 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 a day 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 a day 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 21 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 a day ago | parent | prev [-]

> Ctrl+C, Ctrl+V

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