是否可以将使用nano
打开的文件中的文本复制到shell?
我有一个文本文件,我想将几行复制到控制台,但我找不到复制文本的键盘快捷键。
答案 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编辑器中寻找复制+粘贴解决方案的人
注意:如果要复制整行,则无需标记即可,只需将光标移至该行即可。
答案 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 从全局剪贴板复制/粘贴kbd> + c 和 Ctrl + Shift + v ( Cmd + c 和 Cmd + v 。 screen
还提供了可在nano
中使用的外部复制/粘贴。最后,如果你需要做的就是从文件中捕获某些行或文本,请考虑使用grep
来查找行和xclip
或xsel
(或pbcopy
/ {{ 3)}在OSX上)将它们复制到全局剪贴板(和/或从剪贴板粘贴)而不是nano
。
答案 3 :(得分:3)
这个帖子很老了,但是今天我用同样的问题谦虚,上面提到的所有解决方案都无济于事。因为我希望复制长行,我的解决方案是 - 根据@themisterunknown上面写的内容 - 在nano之外。我用过awk!
awk '{ if (NR==87) print $0 }' filename
其中NR == [行号],$ 0是完整行。
答案 4 :(得分:3)
相对简单的解决方案:
从要复制的第一个字符开始,按住 Shift 并一直到最后。
按 Ctrl + K ,可从文件中剪切文本。
按 Ctrl + X ,然后按N,不保存任何更改。
将剪切的文本粘贴到您想要的任何位置。
或者,如果您的文本适合屏幕,您只需使用鼠标进行选择,它就会自动将其复制到剪贴板。
答案 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
(或xsel
或xclip
或类似的工具)并将此命令放入全局绑定文件或工具:
wl-clipboard
然后:
这将保留原始/有意的空行,但所有其他行将被合并。
这是主要选择。如果您更喜欢剪贴板,则将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粘贴文本