Linux 将文本从nano编辑器复制到shell

Linux 将文本从nano编辑器复制到shell,linux,ubuntu,text,editor,nano,Linux,Ubuntu,Text,Editor,Nano,是否可以将使用nano打开的文件中的文本复制到shell中 我有一个文本文件,我想复制几行到控制台,但我找不到键盘快捷键来复制文本。我不知道在nano中直接执行此操作的任何方法。但是,您可以使用“cat”或“grep”在控制台中显示文件的行 如果使用“屏幕”等终端多路复用器,则可以复制和粘贴字符串。nano似乎无法从全局/系统剪贴板或shell复制/粘贴字符串 但是,您可以使用nano将文本从一个文件复制到另一个文件。使用^R(Ctrl+R)打开另一个文件缓冲区时,可以使用nanos内置的复制/

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


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

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


如果使用“屏幕”等终端多路复用器,则可以复制和粘贴字符串。

nano
似乎无法从全局/系统剪贴板或shell复制/粘贴字符串

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

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

最后,如果上述解决方案不适用于您,并且您使用的是终端仿真器,则可以分别使用Ctrl+Shift+c和Ctrl+Shift+v(OSX上的Cmd+c和Cmd+v)从全局剪贴板复制/粘贴。还提供了一个外部拷贝/粘贴,该拷贝/粘贴应在
nano
中工作。最后,如果您需要做的是从文件中捕获某些行或文本,请考虑使用以查找行和/或(或/或OSX)将它们复制到全局剪贴板(和/或从剪贴板粘贴),而不是<代码> No.< /代码>。 纳米到外壳:

1。使用鼠标标记文本

2.在外壳中右键单击鼠标

在Nano内:

1.CTRL+6(CTRL+Shift+6按住Shift键并移动光标)用于标记集并标记所需内容(结尾可能会提供一些额外帮助)

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

3。CTRL+u在要粘贴的位置

1.CTRL+6(CTRL+Shift+6按住Shift键并移动光标)用于标记集并标记所需内容(结尾可能会提供一些额外帮助)

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

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

4。CTRL+u在要粘贴的位置。

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

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

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


希望有帮助。

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

该线程非常旧,但今天我遇到了同样的问题,上面提到的所有解决方案都没有帮助。由于我希望复制长线,我的解决方案是——根据上面@themisterunknown所写的——在nano之外。我用awk

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

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

相对简单的解决方案:

  • 从要复制的第一个字符开始,按住Shift键,一直复制到结尾

  • 按Ctrl+K,将从文件中剪切文本

  • 按Ctrl+X,然后按N不保存任何更改

  • 将剪切的文本粘贴到所需的任何位置


  • 或者,如果您的文本适合屏幕,您只需使用鼠标进行选择,它就会自动将其复制到剪贴板。

    对于仍在nano editor中寻找复制+粘贴解决方案的用户

    选择文本
    • ctrl+6
    • 使用箭头将光标移动到您希望标记结束的位置
    注意:如果要复制整行,无需标记,只需将光标移动到该行即可

    复制:
    • 按alt+6
    要粘贴:
    • 按ctrl+U组合键

    第一种方法 当内容不包含●.

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

    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
    
    xrdb -load ~/.Xresources
    
    现在,在拖动鼠标的同时按Shift键,选择包含行号的行号。选择后,单击您的组合键;线条是铜色的,可以粘贴到任何你喜欢的地方

    第二种方法 没有第一种方法的缺点

    安装
    xdool
    xsel
    或类似产品

    把这两条线放好

    Ctrl <Btn3Down>: select-start(PRIMARY, CLIPBOARD)
    Ctrl <Btn3Up>: select-end(CLIPBOARD, PRIMARY)
    
    在您的路径中创建此纸条:

    #!/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键的同时用鼠标左键选择数字。在此之后,再次通过自定义全局快捷方式调用脚本。线条的范围是铜色的,可以粘贴到任何你喜欢的地方。

    非常容易
    #!/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
    
    sed "342q;d" doc.txt >> ~/.bash_history
    
    history -n
    
    PROMPT_COMMAND='history -n ; $PROMPT_COMMAND'