←back to thread

217 points tanelpoder | 7 comments | | HN request time: 0.555s | source | bottom
1. RVuRnvbM2e ◴[] No.26493408[source]
Bash, via GNU Readline, has an option that sidesteps this issue:

  enable-bracketed-paste (On)
       When  set  to On, readline will configure the terminal in a way
       that will enable it to insert each paste into the editing  buf‐
       fer  as a single string of characters, instead of treating each
       character as if it had been read from the keyboard.   This  can
       prevent  pasted  characters  from  being interpreted as editing
       commands.
Effectively it means that even if you paste garbage into the terminal you still have to hit enter before the command is interpreted.
replies(4): >>26494381 #>>26494491 #>>26497760 #>>26500266 #
2. loloquwowndueo ◴[] No.26494381[source]
This won’t help for the kind of clueless blind-paste people who run into this issue in the first place - they don’t know what they are doing, is the actual problem. They’ll just paste whatever, hit enter, and then ask for support because nothing works :)
replies(1): >>26496621 #
3. oconnor663 ◴[] No.26494491[source]
This is the real solution! I think every shell supports "safe paste" in some way. For example, here's something for Zsh: https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/safe-...

This works great in combination with another advanced feature, "edit command" or "edit and execute command". Once you've pasted a command into the terminal, even a multiline command with safe paste, you can have the shell open your $EDITOR to edit the command, and automatically put the result right back into the shell (or just run it). This is available in Bash by default as ctrl-x ctrl-e.

(And as someone else pointed out below, if you don't want to enable safe paste, you can open the editor first on a blank command line and paste into that. But really we should all enable safe paste.)

replies(1): >>26495729 #
4. mjevans ◴[] No.26495729[source]
Thank you, I think I've accidentally activated this mode without knowing _or wanting_ it when muscle memory for copy/paste happens while using a windows workstation but E.G. putty. Now I know it's a mode and that ctrl-e can undo it.
5. macintux ◴[] No.26496621[source]
I've been a UNIX admin & developer for 25 years. I still on occasion accidentally paste the wrong text into the terminal.

(Admittedly, I think it only ever happens at home now, because everything I do on a work system scares the hell out of me.)

6. kzrdude ◴[] No.26497760[source]
It should be enabled by default, so it would truly help.

By the way, doesn't this solve the sudo issue too? That where a password prompt swallows the rest of the pasted lines.

7. penguin_booze ◴[] No.26500266[source]
TIL:

  man readline
is a gold mine!