ChatGPT解决这个技术问题 Extra ChatGPT

Copy Paste in Bash on Ubuntu on Windows

How to execute a copy paste operation from Windows 10 to the Bash on Ubuntu on Windows environment?

I tried the following:

ctrl + shift + v

right click to paste

Any suggestions?

I updated the question so you can understand it.. it's about the NEW ubuntu bash on windows.
What is your terminal?
Guys you are missing something: Windows Anniversary 10 Update has a new ubuntu bash integrated with it, so please read about it and then you'll understand the question. My terminal IS UBUNTU BASH ON WINDOWS!
This should be re-opened. From the Bash on Ubuntu on Windows 'about' page [emphasis mine]: "Bash on Windows provides developers with a familiar Bash shell and Linux environment ...".
As-of the Windows "Creators Update" you should be able to copy to the clipboard by piping to clip.exe, e.g. echo "Blah blah blah" | clip.exe.

H
HoldOffHunger

Update 2019/04/16: It seems copy/paste is now officially supported in Windows build >= 17643. Take a look at Rich Turner's answer. This can be enabled through the same settings menu described below by clicking the checkbox next to "Use Ctrl+Shift+C/V as Copy/Paste".

Another solution would be to enable "QuickEdit Mode" and then you can paste by right-clicking in the terminal.

To enable QuickEdit Mode, right-click on the toolbar (or simply click on the icon in the upper left corner), select Properties, and in the Options tab, click the checkbox next to QuickEdit Mode.

With this mode enabled, you can also copy text in the terminal by clicking and dragging. Once a selection is made, you can press Enter or right-click to copy.


I didn't realise that right-clicking did the paste right away... I was expecting to see a context menu pop up with options.
After using left mouse button to select text, I have to right click twice to get the text to paste.
Yes.. mouse click works.. is there a way to do this with keyboard only (selection and paste)? that is the point of using VIM/UBUNTU/Shell after all.
So no way to paste with the keyboard?
@FelipeAlvarez You only have to right click once to paste. The first time you right click you are copying the text; please read the answer more carefully. It's been a while since I used Bash on Ubuntu on Windows, but did not find a way to enable copy/paste with the keyboard.
c
chipit24

To get right-click to paste to work:

Right-click on the title bar > Properties

Options tab > Edit options > enable QuickEdit Mode

https://i.stack.imgur.com/0r1aZ.png


Can you clarify what is the insert mode?
@alpha_989 Insert Mode inserts text at the cursor (and pushes subsequent characters to the right), rather than overwrite characters to the right of the cursor. Insert Mode is the default mode most people expect. From testing it doesn't seem like this setting is respected in WSL. I have it unchecked but it still inserts rather than overwrites.
G
Glorfindel

Ok, it's developed finally and now you are able to use Ctrl+Shift+C/V to Copy/Paste as of Windows 10 Insider build #17643.

You'll need to enable the "Use Ctrl+Shift+C/V as Copy/Paste" option in the Console "Options" properties page:

https://i.stack.imgur.com/rVeTm.png

referenced in blogs.msdn.microsoft.com/


2018 here, don't see this in production (full windows 10 with ubuntu from the app store). sigh.
How do you know what Windows build you're on? I don't see this option.
type in Run/Start, winver @methodsignature
As per the blog post above, this first shipped in Win10 Insider build 17643, and will be included in the Fall 2018 Update shipping "soon"™ ;)
@methodsignature Found this feature in Windows 10 (1809). Try to update your windows now.
N
Nagev

At long last, we're excited to announce that we FINALLY implemented copy and paste support for Linux/WSL instances in Windows Console via CTRL + SHIFT + [C|V]!

You can enable/disable this feature in case you find a keyboard collision with a command-line app, but this should start working when you install and run any Win10 builds >= 17643. Select "Properties" from the menu to access the following dialog box.

https://i.stack.imgur.com/K6Dsg.png

Thanks for your patience while we re-engineered Console's internals to allow this feature to work :)


How do I check my current build version and force an update if I do not see this
To find your current Windows version, run winver from the run dialog or command-line. To get early access to these and other features as they're being built, you'll need to sign up for the Windows Insider Program; details here: insider.windows.com/en-us
@NafeezAbrar - Blog post starts with "As of Windows 10 Insider build #17643" - 1803 was build 17682. This feature will ship in builds >= 17643, leading up to general release in Windows 10 Fall 2018 Update.
@Nafeez Abrar: Good to hear. Thanks for letting us know :)
Ah, you can select Ubuntu on Windows Terminal. Totally missed that, should be an answer!
F
Fernando Rodriguez

You can use AutoHotkey (third party application), the command below is good with plain alphanumeric text, however some other characters like =^"%#! are mistyped in console like bash or cmd. (In any non-console window this command works fine with all characters.)

^+v::SendRaw %clipboard%

I tried using ^#v as Ctrl+Shift+V, but it did not work because ^#v stands for Ctrl+WinKey+V. You should use ^+v, which stands for Ctrl+Shift+V.
Although it requires a third party program, that seems to be normal to make Windows usable anyway. I think this is the best answer because it allows you to retain the keyboard shortcut you're used to
I am using +Ins because ^+v collides with any program already using that for other purposes in some contexts like nano "jump to last line". I have yet to find anything using shift+insert for different purposes.
And for those who want it to paste instantly rather than one character at a time: ^+v::SendInput %clipboard%
Works strange, replaces / chart to | so paths /a/b/c turns into |a|b|c
林果皞

Right-click the title bar, select context menu Edit -> Paste (until they fix the control key shortcuts)


This is temporary a good solution, but weird how do they release it without the simplest features..
until when exactly? it's january 2018 and they did not fix the control key shortcuts yet. this is in creators update.
Apparently, newer builds of Windows 10 became available to the general public later in 2018, or early 2019. But the update didn't happen automatically. Go into Settings, Windows Update, and click on Check for Updates.
S
Stuart Brock

As others have said, there is now an option for Ctrl+Shf+Vfor paste in Windows 10 Insider build #17643.

Unfortunately this isn't in my muscle memory and as a user of TTY terminals I'd like to use Shf+Ins as I do on all the Linux boxes I connect to.

This is possible on Windows 10 if you install ConEmu which wraps the terminal in a new GUI and allows Shf+Ins for paste. It also allows you to tweak the behaviour in the Properties.

https://i.stack.imgur.com/LDcJp.png

https://i.stack.imgur.com/W9Zm3.png

https://i.stack.imgur.com/pnd6B.png

https://i.stack.imgur.com/VyXqX.png

Also allows tabbed Consoles (including different types, cmd.exe, powershell etc). I've been using this since early Windows 7 and in those days it made the command line on Windows usable!


Although this solution is a pretty heavy-handed one for a feature that really should be integrated into Windows Bash (and will be soon with build 17643?), it gave me Shift+Ins for paste without even messing with the settings. Plus, I am excited to check out the app for what else it offers.
Thanks for the comment. From what I can tell Shf+Ins is not going to be available in build 17643 - Just Shf+Ctrl+V. I use Shf+Ins every day so didn't want to learn an alternative key press.
Thanks for this, I've been missing my shf+Ins since I dumped cygwin in favor of WSL. And I really like this application for mor than just that.
mintty is a much more lightweight option that allows for shift/ctrl+insert copying and pasting
I
Ilhicas

Like it has been written before:

Right Click on Bash on Ubuntu on Windows Icon if you have it on a Task Bar Shortcut Icon

Click on Properties

Select Options Tab on the Properties Window

Check the QuickEditMode option

Click Apply

Now you are able to open a new Bash Terminal and just use Right-Click to paste

In order to be able to copy from Terminal, Just use CTRL+M and this will enable you to select and copy selected Text.


J
Jon49

For pasting into Vim in the terminal (bash on ubuntu on windows):

export DISPLAY=localhost:0.0

Not sure how to copy from Vim though :-(


DISPLAY has absolutely nothing to do with vim or copy and pasting.
@FelipeAlvarez Apparently it worked for me. Let me know if you come up with a better solution!
@Jon49, Can you explain what this is doing? Are you putting this in .vimrc? or within vim like :export DISPLAY=localhost:0.0
@alpha_989, That goes into the Ubuntu terminal. I believe it connects Ubuntu and Windows somehow. Been a while so I don't remember all the details.
G
Gubatron

Alternate solution over here, my windows home version Windows Subsystem Linux terminal doesn't have the property to use Shift+Ctrl (C|V)

https://i.stack.imgur.com/bCJ7D.png

Install an X-server in Windows (like X-Ming)

sudo apt install

export DISPLAY=:0

fire your terminal app, I tested with xfce4-terminal and gnome-terminal

windows #ubuntu #development


C
Colin MacKenzie - III

you might have bash but it is still a windows window manager. Highlite some text in the bash terminal window. Right click on the title bar, select "Edit", select "Copy", Now Right Click again on the Title bar, select "Edit" , Select "Paste", Done. You should be able to Highlite text, hit "Enter" then Control V but this seems to be broken


What you describe as broken sounds like you don't have Quick Edit mode enabled in the console settings
o
ojdo

For just copying (possibly long) texts to the Windows clipboard, I have found that just piping the output to clip.exe (including the .exe file extension) works fine for me. So:

$ echo "Hello World" | clip.exe

lets me paste Hello World using Ctrl-V anywhere else.

Now that I have posted this, I notice that related question Pipe from clipboard in linux subsytem for windows includes this and a command solution for pasting from the Windows clipboard as well.


o
oldpedro

For autohotkey users, a full answer is:

#IfWinActive ahk_class ConsoleWindowClass
^+v::SendInput %clipboard%

Which checks that you're in a console (windows or ubuntu) before pasting from the windows clipboard.


v
verymax

That turned out to be pretty simple. I've got it occasionally. To paste a text you simply need to right mouse button click anywhere in terminal window.


Nope. Does nothing.