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

时间:2015-05-28 12:47:27

标签: linux ubuntu text editor nano

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

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

14 个答案:

答案 0 :(得分:31)

Nano to Shell:

2个步骤

1。使用鼠标标记文字。

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

纳米内部:

4个步骤

标记集的

1。 CTRL + 6 并标记您想要的内容( end 可以做些什么额外的帮助)。

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

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

您要粘贴的地方的

4。 CTRL + u

答案 1 :(得分:9)

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

要选择文本

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

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

要复制:

  • alt + 6

要粘贴:

  • ctrl + U

Reference

答案 2 :(得分:5)

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

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

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

最后,如果上述解决方案不适合您并且您使用终端仿真器,则可以使用 Ctrl + Shift + c Ctrl + Shift + v Cmd + c Cmd + v screen还提供了可在nano中使用的外部复制/粘贴。最后,如果你需要做的就是从文件中捕获某些行或文本,请考虑使用grep来查找行和xclipxsel(或pbcopy / {{ 3)}在OSX上)将它们复制到全局剪贴板(和/或从剪贴板粘贴)而不是nano

答案 3 :(得分:3)

这个帖子很老了,但是今天我用同样的问题谦虚,上面提到的所有解决方案都无济于事。因为我希望复制长行,我的解决方案是 - 根据@themisterunknown上面写的内容 - 在nano之外。我用过awk!

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

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

答案 4 :(得分:3)

相对简单的解决方案:

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

  2. Ctrl + K ,可从文件中剪切文本。

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

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

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

答案 5 :(得分:2)

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

如果使用“屏幕”之类的终端多路复用器,则可以复制和粘贴字符串like this

答案 6 :(得分:2)

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

答案 7 :(得分:1)

我先前写的内容可能会复制一行的一部分,但对于完整的行却不好。对于单个或多个完整行:

安装/profiles/1 (或fzy或类似名称)并将其放在您的〜/ .bashrc中:

fzf

并将其放入全局快捷方式配置文件或实用程序中:

nc () {
      fil=$(ps aux | grep [n]ano | grep -oE '[^ ]+$' | rev | cut -d'/' -f 1 | rev | uniq | fzy)
      find ~ -type d -name .cache -prune -o -type f -name "$fil" -exec sed -n ""$@"p" {} + | xsel -b && pkill -f 40x15
}

现在您可以通过快捷方式调用这个小的xterm窗口并输入

xterm -geometry 40x15

,然后选择要从中复制这些行的文件。将它们粘贴到另一个纳米中的任何位置(在通过M-I禁用自动缩进之后)。

对于一行,只需输入

nc FIRST_LINE_NUMBER,LAST_LINE_NUMBER

这可能仅对复制长行的一部分有用:

您需要nc LINE_NUMBER fmt(或xselxclip或类似的工具)并将此命令放入全局绑定文件或工具:

wl-clipboard

然后:

  1. 如果行号由M-N启用(在我的配置中为Alt-N),则禁用行号
  2. 通过M-M禁用鼠标支持(在我的配置中为Alt-M)
  3. 就像在终端或任何其他程序中一样,轻松选择要通过鼠标复制的整个区域
  4. 点击上方命令的自定义按键绑定
  5. 在要粘贴文本的任何位置单击鼠标中键

这将保留原始/有意的空行,但所有其他行将被合并。

这是主要选择。如果您更喜欢剪贴板,则将xsel | fmt -c -w 1000 - | xsel 替换为xsel,在第4步之前,您需要按Ctrl-Shift-C而不是第5步,根据情况通过Ctrl-V或Ctrl-Shift-V粘贴在您要粘贴的位置。

Ed:您可以仅按Shift键,然后单击要复制的文本的开头并释放Shift键,而不是前3个步骤,但不释放鼠标,而是将鼠标拖动到要复制的文本的末尾并释放鼠标。并按照上述步骤进行剪贴板而不是主要选择。

答案 8 :(得分:1)

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

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

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

答案 9 :(得分:0)

无法在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 粘贴。

答案 10 :(得分:0)

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

答案 11 :(得分:-1)

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

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

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

希望它有所帮助。

答案 12 :(得分:-1)

更简单的方法
$ cat my_file

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

Ctrl + Shift + v 可以将其粘贴到任意位置

答案 13 :(得分:-3)

ctrl + shift + c复制文本,你被分配了。
ctrl + shift + v粘贴文本