158

I need to copy some text in Nano, so I searched using Google and found a few posts here on Stack Exchange and other sites in which the OP asks "How can I copy?" and people usually answer "You can use ctrl+K". The person asks how to copy and they are told how to cut.

Other answers mention alt+6 but in my testing it doesn't work.

Is there no option to copy text in Nano? Is there a workaround?

Anwar
  • 77,855

10 Answers10

198
  1. Position the cursor at the beginning of the character from which you want to copy. Press Alt+Shift+A to set mark. ( Alternatively, set mark with Ctrl+6 )

  2. Use arrow keys to highlight the text to copy. highlight with nano image

  3. Use Alt+Shift+6 to copy (Alternatively, Alt + 6 )

  4. Navigate to the place you want to paste. Release paste with Ctrl+U

    paste image

Where is reference to these keybindings

All of these are defined under the documentation, which you can access with Ctrl+G at any point. Note that leading ^ stands for Ctrl and M for Alt in the documentation, since this is traditional way of Unix defining meta characters. Lines from documentation:

^^ (M-A) Mark text starting from the cursor position

and

M-^ (M-6) Copy the current line and store it in the cutbuffer

66

Workaround: cut, then uncut, and uncut again in the place where you want to copy the text.

unicorns
rainbows

line4

I Ctrl+K unicorns

rainbows

line4

I uncut Ctrl+U

unicorns
rainbows

line4

I move the cursor to the end and Ctrl+U again

unicorns
rainbows

line4
unicorns
Anwar
  • 77,855
Zanna
  • 72,312
10

Yes copying text is a bit strange in nano, and somewhat confusing due to conflicting reports on the webs and lack of clarity (or common sense...) both in the way it was implemented (IMHO) and in the official docs...

Per the docs:

4.3 The Cutbuffer

Text can be cut from a file, a whole line at a time, by using the ’Cut Text’ command (default key binding: ^K). The cut line is stored in the cutbuffer. Consecutive strokes of ^K will add each cut line to this buffer, but a ^K after any other keystroke will overwrite the entire cutbuffer.

The contents of the cutbuffer can be pasted back into the file with the ’Uncut Text’ command (default key binding: ^U).

A line of text can be copied into the cutbuffer (without cutting it) with the ’Copy Text’ command (default key binding: M-6).

Since basically, you use CTRL+K to cut, CTRL+U to paste, and the cut line stays in the cutbuffer, you can do a quick cut and paste to replace, and then paste again to achieve a "copy."

But I don't like this "workaround"...

The last part of the docs, says how to copy: using ALT+6 (to copy) ad then pasting using CTRL+U to paste.

(Docs actually say "M" key, which means the Meta key, as mook765 said: "the Meta-key which does not exist"... and is usually just the ALT on modern keyboards.)

You can also select multiple lines using ALT+6 and moving the section with your arrow keys.

Hope this helps.

5

Note that this solution only works in GUI versions of Ubuntu and not in a TTY interface.

I copy text in nano all the time just by doing CTRL+SHIFT+C on the selected text because that's the default key combo to copy any text in terminal. This applies to nano as well. This can also be found in

Edit > Copy

TheOdd
  • 3,012
4

From man nano

When a more precise piece of text needs to be cut or  copied,  one  can
mark  its  start  with  ^6, move the cursor to its end (the marked text
will be highlighted), and then use ^K to cut it, or M-6 to copy  it  to
the  cutbuffer.

M means the Meta-key which does not exist on all keyboards but on some. On keyboards wihtout the Meta-key other modifier-keys like Alt or Esc might work. On my machine i found that the combination Alt+6 works fine.

mook765
  • 18,644
3

you can also do the following;

  1. nano -cm <text_to_edit>
  2. Place the cursor where you want to start copying,
  3. Press Shift + LeftClick and drag mouse throuh the text you want to copy, press Ctrl+Shift+C
  4. Place the cursor you want to paste the text,
  5. Press Ctrl+Shift+V

The options -c and -m elaborated in man nano:

-c, --constantshow
    Constantly show the cursor position on the status bar.  Note that this over‐
    rides option

-m, --mouse
    Enable  mouse  support,  if  available for your system.  When enabled, mouse
    clicks can be used to place the cursor, set the mark (with a double  click),
    and  execute  shortcuts.  The mouse will work in the X Window System, and on
    the console when gpm is running.  Text can still be selected  through  drag‐
    ging by holding down the Shift key.
Abel Tom
  • 651
3

mac pro m1: M=ESC

  1. Position the cursor.
  2. ESC+A: Mark text at the cursor position.
  3. Use arrow keys to highlight the text.
  4. ESC+6: Copy.
  5. Position the cursor.
  6. Ctrl+U: Paste.
1

The easiest way that I find to copy text in nano is to select the text that you want to copy, with your mouse, and right click it. This will bring up a menu where it gives you an option of a few things one of witch is copy, select that option and you have copied the text. When you would like to paste the text do the same thing but select paste instead and it will paste the text.

0

Alternate Method: Pipe Nano Output to Clipboard Exit marking mode and save the text to a temporary file in nano. Copy the file content directly to the clipboard using macOS commands: cat | pbcopy Replace with the name of the file you saved. Paste it elsewhere with Cmd + V.

0

Alternate Method: Pipe Nano Output to Clipboard marking mode Copy the file content directly to the clipboard using macOS commands: cat (filename) | pbcopy Replace with the name of the file you saved. Paste it elsewhere with Cmd + V.