是否可以将用 . 打开的文件中的文本复制nano
到 shell 中?
我有一个文本文件,我想将几行复制到控制台,但我找不到复制文本的键盘快捷键。
纳米到壳:
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在你要粘贴的地方。
对于仍在纳米编辑器中寻找复制+粘贴解决方案的人
注意:如果要复制整行,无需标记,只需将光标移动到该行即可
更简单的方法(对于短文本):
$ cat my_file
Ctrl++从终端复制所需的Shift输出c
Ctrl+ Shift+v粘贴到任何你喜欢的地方
nano
似乎无法从全局/系统剪贴板或外壳复制/粘贴。
nano
但是,您可以使用的文件缓冲区将文本从一个文件复制到另一个文件。当您使用^R
( Ctrl+ r) 打开另一个文件缓冲区时,您可以使用nano
s 内置的复制/粘贴功能(如下所述)在文件之间复制:
M-6
( Meta+ 6) 将行复制到nano
的剪贴板。^K
( Ctrl+ k) 剪切当前行并将其存储在nano
的剪贴板中。^^
( Ctrl+ Shift+ 6) 选择文本。选择文本后,您可以使用上述命令复制或剪切它。^U
( Ctrl+ u) 从nano
的剪贴板粘贴文本。最后,如果上述解决方案对您不起作用并且您使用的是终端仿真器,您可以分别使用++和++ (OSX 上的+ 和Ctrl+ )从全局剪贴板复制/粘贴。还提供了应该在. 最后,如果您需要做的只是从文件中捕获某些行或文本,请考虑使用查找行和或(或OSX 上的/ )将它们复制到全局剪贴板(和/或从剪贴板粘贴)而不是.ShiftcCtrlShiftvCmdcCmdvscreen
nano
grep
xclip
xsel
pbcopy
pbpaste
nano
该线程已经很老了,但是今天我对同样的问题感到谦卑,上面提到的所有解决方案都没有帮助。正如我希望复制长线我的解决方案是 - 根据上面@themisterunknown 写的 - 在 nano 之外。我用过awk!
awk '{ if (NR==87) print $0 }' filename
其中 NR==[行号] 和 $0 是完整的行。
我不知道有什么方法可以直接在 nano 中执行此操作。但是,您可以使用“cat”或“grep”在控制台中显示文件的行。
如果你使用像“screen”这样的终端多路复用器,你可以像这样复制和粘贴字符串。
相对简单的解决方案:
从您要复制的第一个字符开始,按住Shift并一直走到最后。
按Ctrl+ K,从文件中删除文本。
按Ctrl+ X,然后按 N 不保存任何更改。
将剪切的文本粘贴到您想要的任何位置。
或者,如果您的文本适合屏幕,您可以简单地使用鼠标进行选择,它会自动将其复制到剪贴板。
只需使用Ctrl+ Shift+6复制当前行,或者您可以使用Ctrl+设置标记6并使用上述命令复制多行。
无法在 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粘贴。
以下适用于 Nano,但也适用于终端中的任何地方:
用鼠标选择后,从终端复制文本:Ctrl+ shift+ C。
并将文本粘贴到终端:Ctrl+ shift+ V。
当内容不包括●时,此方法似乎有效。
在您的 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 来选择包含行号的行。选择后单击您的组合键;这些行被复制并准备好粘贴到您喜欢的任何地方。
没有第一种方法的缺点。
安装xdotool
和xsel
或类似的。
把这两行
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 键的同时通过鼠标左键选择数字. 在此之后,再次通过您的自定义全局快捷方式调用脚本。行的范围被复制并准备粘贴到您喜欢的任何地方。
用鼠标选择 nano 中的文本,然后右键单击鼠标。文本现在已复制到剪贴板。如果它不起作用,请尝试使用鼠标选项启动 nano:nano -m 文件名
M-^ 是复制文本。我的环境中的“M”是“Esc”键!不是“Ctrl”;所以我使用 Esc + 6 来复制它。
[nano help] Escape 键序列用 Meta (M-) 符号表示,可以使用 Esc、Alt 或 Meta 键输入,具体取决于您的键盘设置。
1)Ctrl + 6
标记要复制的文本
2)Ctrl + k
剪切文本并Ctrl + u
粘贴回原始位置
3) 转到要粘贴步骤 (2) 中标记的代码的所需行。Ctrl + u
粘贴它。
希望能帮助到你。