188

I open a file in Ubuntu nano editor from the comand line and I want to copy all the contents of the file so I can paste it in an another application outside the shell.

So far I can only copy using shift on the screen that is visible but not on all content.

Tamara Wijsman
  • 57,083
  • 27
  • 185
  • 256
Elzo Valugi
  • 1,991
  • 2
  • 12
  • 8
  • Are you in a command line only environment? If not, why don't you open the file in something like gedit? – MBraedley Oct 06 '10 at 10:50
  • 4
    I don't have gedit on that machine and I want to learn to do it in nano. – Elzo Valugi Oct 06 '10 at 14:09
  • 6
    Btw this is why I hate linux and the command-line: In theory a wonderful thing, but in reality extremely unuintutive, even the most simple and common things don't work like expected. Usability Super-Fail. – Sliq Sep 16 '13 at 21:08
  • 3
    nano is not powerful. just to edit some config files it is pretty ok, but as an code editor it sucks! – devasia2112 Jan 17 '14 at 16:32
  • 1
    Question is too vague and the answers are all over the map as a result, leading to confusion. Typically you use nano on a remote server, not your desktop computer. This sounds more like a question about your terminal emulator, which is how you access nano. I really think the question should be changed or flagged for removal. – PJ Brunet Dec 14 '16 at 19:13
  • Agree with above the answers here are confusing – Joel Davey Feb 09 '17 at 10:21
  • Thats why `vim` is much better. – Black May 29 '17 at 08:25
  • try cat command and copy the content. – Ashish Viradiya May 28 '19 at 05:28
  • The general way to select all (for Nano's clipboard, anyhow) is to do `ctrl+home` then `ctrl+shift+end` and then `alt+6` to copy. This isn't an answer because it doesn't answer the entire question. – Brōtsyorfuzthrāx Sep 14 '22 at 19:56

13 Answers13

130

There is a possible way:

  • Cursor at the beginning of a file

  • Ctrl6 to set a mark

  • AltShiftT (or try AltT) to cut to the end of the file

  • If AltT doesn't work, try CtrlK

  • to just copy the file content do CtrlU to uncut the text again
Ye Sen
  • 1,317
  • 2
  • 8
  • 2
75

you can use cat and then copy it from the console:

cat path/to/file.yml

Select the output printed in the console.

Verny Rivera
  • 861
  • 6
  • 4
26

You can't use the buffer of nano to use it elsewhere, you need to use the buffer of X or Gnome.

xclip is the solution.

A command line interface to the X11 clipboard. It can also be used for copying files, as an alternative to sftp/scp, avoiding password prompts when X11 forwarding has already been setup.

Tamara Wijsman
  • 57,083
  • 27
  • 185
  • 256
Louis
  • 2,574
  • 3
  • 17
  • 14
19

Alternatively you can zoom out using Ctrl+- to fit all the file contents on 'one screen page' and select everything using the mouse. After you zoom back with Ctrl+0 or zoom in progressively with Ctrl++.

I don't like the mouse part, but this is a fast way to copy bulk text in nano.

zer0mode
  • 341
  • 3
  • 3
7

Actually, this answer might be a bit late but I was looking for an answer for the same question and I just figured it out. when you have the file you want to copy to open in nano. you can hit ctl-R and enter the file you want copied from. this will bring in the whole file.

In my case I was just copying my old fstab so it wasn't a big deal. but could get ridiculous with huge files.

darkwingduck
  • 79
  • 1
  • 1
3

You can cut from the current cursor position to the end of the file with meta key plus T. Meta key is either alt or escape, depending on your keyboard. For me, accessing Ubuntu via ssh from my OSX it was escape.

JPollock
  • 139
  • 2
3

Here's another solution. One that I personally prefer. It uses Xsel. It's very similar to Xclip but with a key difference.

$ cat my_funky_file | xsel

While Xclip puts everything in the main clipboard, Xsel manipulates the selection buffer letting you paste the selection with a middle-click. This is great for one-offs! So if you have something in your clipboard that you haven't pasted yet, that would stay unaffected!

And if you want to paste the content, xsel -o will spit it right out.

You can install it on a debian based system using

$ apt-get install xsel

The source is available here otherwise! Hope this helps someone.

Kasisnu
  • 131
  • 2
2

Simplest way:

  • Alt\ to go to the top of the file.
  • Ctrl6 to set a mark.
  • Alt/ to go to the bottom of the file (i.e. marking all the text).
  • Alt6 to copy the selected text.

(Not part of the question but for the record, CtrlU can be used to paste copied text.)

Steve Chambers
  • 1,032
  • 2
  • 12
  • 23
2

use micro instead of nano in these cases

To install:

sudo su
cd /opt/
apt-get install curl
curl https://getmic.ro | bash
ln -s /opt/micro /usr/bin/micro
ln -s /opt/micro /usr/bin/nani
exit

so you can open a file with:

micro Readme.txt
or
nani Readme.txt

I use both, nano is quick and handy, micro is fully featured.

You can use:

  • Ctrl-A to select all.
  • Ctrl-C, Ctrl-V
  • Place multiple cursors if you use Ctrl and left click
  • Ctrl-Q to exit and press y or n
  • etc..
  • Micro Gihub page
jturi
  • 131
  • 3
1

As other replies have pointed out, it is actually not possible to copy from nano to the Ubuntu clipboard and use it in other software, unless you use your mouse and copy with the right click.

however it is possible to open both files in nano and copy from one to another: (Meta is Alt or Esc based on your default Meta key)

  1. First you need to activate multiple buffers

    • if you have the nano open Metaf

    • or open nano with -F flag: nano -F

    • or put set multibuffer into your ~/.nanorc file

  2. Then you can open files in new buffer with Ctrlr

  3. switch between buffers with Meta, to left and Meta. to right
  4. go to the beginning of the file Meta\ and then you have two options:

    a. mark the text by CtrlShift6, then take the cursor to the end Meta/, then cut the text Ctrlk

    b. cut the text to the end of file by Metat

  5. switch to the other file opened in the other buffer and past by Ctrlu

Foad
  • 546
  • 3
  • 10
  • 36
1

I dont know why everyone decided to make this so hard.

cat /path/to/file.cfg

it'll output all text in the terminal that can be selected with standard commands.

Paste where you want it.

Narcarsiss
  • 29
  • 1
  • 1
    The question was how to do this from within the `nano` editor, which may or may not be possible. – ckujau May 21 '20 at 01:51
  • 2
    Reason I mentioned this, was I was trying to do the same thing. Then you just right click in `nano` window and it pasts the text. Downvoting isnt convenient. – Narcarsiss May 22 '20 at 03:32
  • this is a valid answer even when this solution was already in place https://superuser.com/a/1231864/752096 – Verny Rivera Nov 13 '20 at 16:52
  • I was about to put this answer. Even though the question was how to do it in nano, it's still valid because the desired outcome was to copy ALL text and paste it outside the shell. This is the easiest way I can think of without needing to download any extra tools. We don't need to be so complicated all the time, lol. – Juno Sprite Jun 29 '23 at 17:18
0

So this works in putty.
1. right click title bar 2. change settings 3. Appearance 4. change - font 5. change the font to 1

This will put a lot of code on a single screen. It was enough for me to copy a large config file.

Tom C
  • 1
0

From my understanding it is not possible to select an entire file in nano if it scrolls more then your window. If you are using a GUI and have nano open from a terminal and the file is not longer than your window you can use mouse and select all the text than cnt+shift+c will copy it to clipboard.

Although not in nano, there is a way in vim. See here.

Specifically, select text (visual mode) section.

Chris
  • 588
  • 4
  • 17