在Nano中复制(只复制,不剪切)?

我需要在Nano中复制一些文本,所以我使用谷歌搜索,在Stack Exchange和其他网站上找到了一些帖子,其中提问者问道“如何复制?”而人们通常回答“你可以使用ctrl+K”。这个人问如何复制,却被告知如何剪切。
其他答案提到alt+6,但在我的测试中它不起作用。
在Nano中没有复制文本的选项吗?有没有解决办法?

6你的键盘布局是什么?对我来说,Alt-6(也称为M-6)和Alt-^(也称为M-^)都可以使用。 - steeldriver
我使用的是几年前购买的罗技英希键盘,从未出过问题。 - user423047
8个回答

  1. 将光标定位到要复制的字符的开头。按下 Alt+Shift+A 设置标记。(或者,使用 Ctrl+6 设置标记)

  2. 使用箭头键突出显示要复制的文本。 highlight with nano image

  3. 使用 Alt+Shift+6 复制(或者,使用 Alt + 6

  4. 导航到要粘贴的位置。使用 Ctrl+U 进行粘贴。

    paste image

这些快捷键的参考在哪里?

所有这些都在文档中定义,您可以在任何时候使用Ctrl+G访问文档。请注意,在文档中,前导的^表示CtrlM表示Alt,因为这是Unix定义元字符的传统方式。文档中的一些行:

^^ (M-A) 从光标位置开始标记文本

M-^ (M-6) 复制当前行并存储到剪贴板


太棒了。但是在苹果电脑上如何执行“alt”操作? - Darth Egregious
5@user973810 最后一次我查看的时候,苹果的笔记本电脑和台式机都有Alt键。如果你说的是远古时代的Macintosh,大约是1998年左右的那种,嗯……我对那些不太熟悉,所以无法帮助你。或许你可以学习VI编辑器——它比nano好得多。 - Sergiy Kolodyazhnyy
不,你错了。有功能、控制、选项和命令。没有"alt"。 - Darth Egregious
5查看图像。Mac 上的 Option 键充当 Atl 键。 - Sergiy Kolodyazhnyy
6@user973810 如果你仔细看一下选项键,你可能会注意到上面也写着“alt”。http://nedbatchelder.com/pix/mackeyboard.jpg - TheWanderer
即使是iMac G3(1999年)也有双标签 http://www.vectronicsappleworld.com/archives/vintage/images/0012/snap38.jpg。 - TheWanderer
@Serg 这是一个直接链接:https://images-na.ssl-images-amazon.com/images/I/61sOBcXjbXL._SL1000_.jpg - EKons
1我正在使用14.04版本,当我按下ALT-SHIFT-6时,会出现"未知命令"的提示,并且我仍然处于标记模式中(我必须再次按下ALT-SHIFT-6来取消标记模式)。 - Tulains Córdova
@TulainsCórdova 是的,我在我的16.04系统上也发生了同样的事情。我认为在过程中我按下了nano无法识别的键组合。如果按照步骤仔细操作并正确按下每个键,就不会出现"未知命令"。 - Sergiy Kolodyazhnyy
ctrl-6 开始标记区域;箭头键扩展标记区域;alt-6 复制或 ctrl-k 剪切;ctrl-u 粘贴。无需使用 Shift 键。另外,如果不需要开始标记,可以使用 alt-6ctrl-k(如果需要的话,可重复多次)复制或剪切一行(或多行),然后使用 ctrl-u 粘贴它们。 - jrw32982
@JohnWiersba那也可以。我习惯使用Alt+Shift+AAlt+Shift+6,因为文档上是这样写的:^^ (M-A) 标记从光标位置开始的文本。至于Ctrl+K,Zanna的回答已经涵盖了。 - Sergiy Kolodyazhnyy
@JohnWiersba 我已经更新了答案,包括备选按键设置和引用文档内容。 - Sergiy Kolodyazhnyy
1这个回答里我能读到的就是“是时候学习vim了”。 - Nearoo
@Nearoo 学习 vim 总是一个好主意 - 非常强大且常见的编辑器 :) 我推荐在YouTube上参加Shawn Biddle的培训课程。那是我学习基础知识并逐渐喜欢上它的地方。之后我很快就放弃了 nano - Sergiy Kolodyazhnyy
@SergiyKolodyazhnyy,快捷键(Alt + 6)是一种备用键。主要的快捷键是M-^,意思是Alt + Ctrl。对于几乎所有其他选项,主键本身就可以工作,但是对于复制来说,这个组合键不起作用。你有任何想法为什么吗? - learner
1@SergiyKolodyazhnyy,抱歉,我现在意识到字符“^”是键盘上的一个字符,而不是Ctrl键的标记。按下Alt + Shift + 6就可以了。 - learner

解决方法:在您想要复制文本的位置,先剪切,然后取消剪切,再次取消剪切。
unicorns
rainbows

line4

我按下 Ctrl+K 输入了 unicorns
rainbows

line4

我按下了Ctrl+U
unicorns
rainbows

line4

我将光标移到最后,然后再按Ctrl+U
unicorns
rainbows

line4
unicorns

5好的解决方法,+1 - Sergiy Kolodyazhnyy

是的,在nano中复制文本有点奇怪,并且由于网络上关于此问题的冲突报告和缺乏清晰度(或常识...)而令人困惑,无论是在实施方式(依我之见)还是在官方文档中。
根据文档:
引用: 4.3 剪贴板 可以使用“剪切文本”命令(默认键绑定:^K)从文件中一次剪切一整行文本。剪切的行将存储在剪贴板中。 连续按下^K将每个剪切的行添加到此缓冲区,但在任何其他按键后按下^K将覆盖整个剪贴板。 可以使用“取消剪切文本”命令(默认键绑定:^U)将剪贴板的内容粘贴回文件中。 可以使用“复制文本”命令(默认键绑定:M-6)将一行文本复制到剪贴板中(而不是剪切)。
基本上,你可以使用CTRL+K来剪切,CTRL+U来粘贴,而被剪切的行会保留在剪贴板中。这样你就可以快速地进行剪切和粘贴以替换内容,然后再次粘贴来实现“复制”。
但是我不喜欢这个“变通方法”……
文档的最后部分介绍了如何复制:使用ALT+6(复制),然后使用CTRL+U来粘贴。
(文档实际上说的是“M”键,意思是元键,正如mook765所说:“不存在的键”……通常在现代键盘上只是ALT键。)
你还可以使用ALT+6来选择多行,并用箭头键移动该部分。
希望这能帮到你。

请注意,此解决方案仅适用于Ubuntu的图形用户界面版本,而不适用于TTY界面。
我经常通过在选定的文本上执行CTRL+SHIFT+C来复制nano中的文本,因为这是终端中复制任何文本的默认组合键。这同样适用于nano。您也可以在编辑 > 复制中找到此功能。

7好的解决方法,但这在TTY中不起作用,只能在GUI终端中使用 :) 然而,nano有自己的复制方式,不依赖于终端。 - Sergiy Kolodyazhnyy

man nano

当需要剪切或复制更精确的文本时,可以使用^6标记其开头,将光标移动到其结尾(标记的文本将被突出显示),然后使用^K将其剪切,或者使用M-6将其复制到剪贴板。

M表示Meta键,在某些键盘上不存在。在没有Meta键的键盘上,其他修饰键如AltEsc可能起作用。在我的机器上,我发现组合键Alt+6效果很好。


你还可以按照以下步骤操作:
  1. nano -cm <要编辑的文本>
  2. 将光标放在想要开始复制的位置,
  3. 按住Shift键并用鼠标拖动选择要复制的文本,然后按下Ctrl+Shift+C
  4. 将光标放在想要粘贴文本的位置,
  5. 按下Ctrl+Shift+V

man nano中详细解释了选项-c-m

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

mac pro m1: M=ESC
  1. 将光标定位。
  2. ESC+A:标记光标位置的文本。
  3. 使用箭头键突出显示文本。
  4. ESC+6:复制。
  5. 将光标定位。
  6. Ctrl+U:粘贴。

Mac Pro自2019年以来就没有再生产了,所以你可能是指的MacBook Pro吧?这是用于运行Ubuntu还是OS X的MacBook Pro M1呢? - Greenonline
它适用于iMac 24. 2022年:M=ESC - Alexis
在Linux deb上工作 - Qui-Gon Jinn

我发现在nano中复制文本的最简单方法是使用鼠标选择要复制的文本,然后右键点击。这将弹出一个菜单,其中有几个选项之一是复制,选择该选项即可复制文本。当您想要粘贴文本时,执行相同的操作,但选择粘贴而不是复制,它将粘贴文本。

3如何在TTY中右击所选文本?那样不会起作用。 - Sergiy Kolodyazhnyy
如果文本超过窗口大小怎么办?比如SSH密钥? - leymannx