78

是否可以将用 . 打开的文件中的文本复制nano到 shell 中?

我有一个文本文件,我想将几​​行复制到控制台,但我找不到复制文本的键盘快捷键。

4

14 回答 14

61

纳米到壳:

1.使用鼠标标记文本。

2.在 Shell 中右击鼠标。

在 Nano 内:

1. CTRL + 6 CTRL++按住并移动光标Shift)标记设置并标记你想要的(可以做一些额外的帮助)。6 Shiftend

2. ALT +6用于复制标记的文本。

3. CTRL +u在你要粘贴的地方。

或者

1. CTRL + 6 CTRL++按住并移动光标Shift)标记设置并标记你想要的(可以做一些额外的帮助)。6 Shiftend

2. CTRL +k用于剪切你想要复制的内容

3. CTRL +u用于粘贴刚刚剪切的内容,因为您只想复制。

4. CTRL +u在你要粘贴的地方。

于 2016-07-18T12:18:52.933 回答
20

对于仍在纳米编辑器中寻找复制+粘贴解决方案的人

选择文本

  • ctrl+6
  • 使用箭头将光标移动到您希望标记结束的位置

注意:如果要复制整行,无需标记,只需将光标移动到该行即可

复印:

  • alt+6

粘贴:

  • ctrl+U

参考

于 2018-12-27T05:48:36.540 回答
19

更简单的方法(对于短文本):
$ cat my_file

Ctrl++从终端复制所需的Shift输出c

Ctrl+ Shift+v粘贴到任何你喜欢的地方

于 2019-09-26T10:58:17.327 回答
9

nano似乎无法从全局/系统剪贴板或外壳复制/粘贴。

nano但是,您可以使用的文件缓冲区将文本从一个文件复制到另一个文件。当您使用^R( Ctrl+ r) 打开另一个文件缓冲区时,您可以使用nanos 内置的复制/粘贴功能(如下所述)在文件之间复制:

  • M-6( Meta+ 6) 将行复制到nano的剪贴板。
  • ^K( Ctrl+ k) 剪切当前行并将其存储在nano的剪贴板中。
  • ^^( Ctrl+ Shift+ 6) 选择文本。选择文本后,您可以使用上述命令复制或剪切它。
  • ^U( Ctrl+ u) 从nano的剪贴板粘贴文本。

最后,如果上述解决方案对您不起作用并且您使用的是终端仿真器,您可以分别使用++和++ (OSX 上的+ 和Ctrl+ )从全局剪贴板复制/粘贴。还提供了应该在. 最后,如果您需要做的只是从文件中捕获某些行或文本,请考虑使用查找行和或(或OSX 上的/ )将它们复制到全局剪贴板(和/或从剪贴板粘贴)而不是.ShiftcCtrlShiftvCmdcCmdvscreennanogrepxclipxselpbcopypbpastenano

于 2015-09-12T17:54:58.787 回答
9

该线程已经很老了,但是今天我对同样的问题感到谦卑,上面提到的所有解决方案都没有帮助。正如我希望复制长线我的解决方案是 - 根据上面@themisterunknown 写的 - 在 nano 之外。我用过awk!

awk '{ if (NR==87) print $0 }' filename

其中 NR==[行号] 和 $0 是完整的行。

于 2018-06-14T08:13:13.590 回答
5

我不知道有什么方法可以直接在 nano 中执行此操作。但是,您可以使用“cat”或“grep”在控制台中显示文件的行。

如果你使用像“screen”这样的终端多路复用器,你可以像这样复制和粘贴字符串。

于 2015-05-28T12:58:52.720 回答
2

相对简单的解决方案:

  1. 从您要复制的第一个字符开始,按住Shift并一直走到最后。

  2. Ctrl+ K,从文件中删除文本。

  3. Ctrl+ X,然后按 N 不保存任何更改。

  4. 将剪切的文本粘贴到您想要的任何位置。

或者,如果您的文本适合屏幕,您可以简单地使用鼠标进行选择,它会自动将其复制到剪贴板。

于 2018-09-13T13:28:54.780 回答
2

只需使用Ctrl+ Shift+6复制当前行,或者您可以使用Ctrl+设置标记6并使用上述命令复制多行。

于 2017-12-15T11:39:45.040 回答
1

无法在 nano 之外访问复制缓冲区,而且我在任何地方都找不到要读取的缓冲区文件。

这是一个完整的 NOX替代方案:在bash 历史记录中打印给定的文件行 。

因此,给定的行可用作带有UP键的命令。

sed " LINE q;d"文件名>> ~/.bash_history

示例

sed "342q;d" doc.txt >> ~/.bash_history

然后将历史重新加载到当前会话中:

history -n

或者要在新提示下自动重新加载历史记录,请将其粘贴到.bash_profile

PROMPT_COMMAND='history -n ; $PROMPT_COMMAND'

注意AZERTY键盘和很可能需要SHIFT从顶部键打印数字的其他布局。

要切换nano文本选择 ( Mark Set/Unset),快捷方式是:

CTRL+ SHIFT+2

或者

ALT+a

然后,您可以使用箭头键选择文本。

所有其他快捷方式都可以作为文档正常工作:

CTRL+k F9剪切。

CTRL+u F10粘贴。

于 2019-10-05T23:13:23.433 回答
1

以下适用于 Nano,但也适用于终端中的任何地方:

  • 用鼠标选择后,从终端复制文本:Ctrl+ shift+ C

  • 并将文本粘贴到终端:Ctrl+ shift+ V

于 2021-04-25T04:07:04.647 回答
1

第一种方法

当内容不包括●时,此方法似乎有效。

在您的 WM 或 DE 中安装xsel或类似并为此命令分配一个全局快捷键:

xsel -o | sed -r 's/^ ?[[:digit:]]+($| +)//g' | perl -pe 's/\n/●/g' | sed -r 's/●●/\n\n/g; s/ ?● {1,}/ /g; s/●/\n/g' | xsel -b

把它放在你的 ~/.Xresources 中:

*selectToClipboard: false

在您的一次中发出这个xterm以激活上述选项:

xrdb -load ~/.Xresources

现在通过在拖动鼠标的同时按 Shift 来选择包含行号的行。选择后单击您的组合键;这些行被复制并准备好粘贴到您喜欢的任何地方。

第二种方法

没有第一种方法的缺点。

安装xdotoolxsel或类似的。

把这两行

Ctrl <Btn3Down>: select-start(PRIMARY, CLIPBOARD)
Ctrl <Btn3Up>: select-end(CLIPBOARD, PRIMARY)

在您的 ~/.Xresources 中,如下所示:

*VT100*translations: #override \n\
    Alt <Key> 0xf6: exec-formatted("xdg-open '%t'", PRIMARY, CUT_BUFFER0) \n\                           
    Ctrl <Key>0x2bb: copy-selection(CLIPBOARD) \n\                              
    Alt <Key>0x2bb: insert-selection(CLIPBOARD) \n\                             
    Ctrl <Key> +:       larger-vt-font() \n\                                    
    Ctrl <Key> -:       smaller-vt-font() \n\
    Ctrl <Btn3Down>: select-start(PRIMARY, CLIPBOARD) \n\
    Ctrl <Btn3Up>: select-end(CLIPBOARD, PRIMARY) 

在您的一次中发出这个xterm以激活上述选项:

xrdb -load ~/.Xresources

在您的路径中创建此脚本:

#!/bin/bash                                                                  

filepid=$(xdotool getwindowpid $(xdotool getactivewindow))                   
file=$(ps -p "$filepid" o cmd | grep -o --color=never "/.*")                   

firstline=$(xsel -b)                                                         
lastline=$(xsel)                                                             

sed -n ""$firstline","$lastline"p" "$file" | xsel -b

分配一个全局快捷键以在您的 WM 或 DE 中调用此脚本。

现在,当您要复制一行(段落)时,在按住 Shift+Ctrl 的同时通过鼠标右键仅选择该行(段落)的行号。选择后单击您之前创建的自定义全局键组合。行(段落)被复制并准备好粘贴到您喜欢的任何地方。

如果要复制多行,请对第一行执行上述操作,然后对范围的最后一行执行上述操作,而不是 Shift+Ctrl+Btn3(鼠标右键),只需按住 Shift 键的同时通过鼠标左键选择数字. 在此之后,再次通过您的自定义全局快捷方式调用脚本。行的范围被复制并准备粘贴到您喜欢的任何地方。

于 2019-09-16T16:34:54.657 回答
1

用鼠标选择 nano 中的文本,然后右键单击鼠标。文本现在已复制到剪贴板。如果它不起作用,请尝试使用鼠标选项启动 nano:nano -m 文件名

于 2019-11-19T08:18:45.727 回答
0

M-^ 是复制文本。我的环境中的“M”是“Esc”键!不是“Ctrl”;所以我使用 Esc + 6 来复制它。

[nano help] Escape 键序列用 Meta (M-) 符号表示,可以使用 Esc、Alt 或 Meta 键输入,具体取决于您的键盘设置。

于 2020-03-04T06:56:47.090 回答
-1

1)Ctrl + 6标记要复制的文本

2)Ctrl + k剪切文本并Ctrl + u粘贴回原始位置

3) 转到要粘贴步骤 (2) 中标记的代码的所需行。Ctrl + u粘贴它。

希望能帮助到你。

于 2017-09-20T03:47:18.863 回答