![如何从 less 中复制文本](https://linux22.com/image/1372352/%E5%A6%82%E4%BD%95%E4%BB%8E%20less%20%E4%B8%AD%E5%A4%8D%E5%88%B6%E6%96%87%E6%9C%AC.png)
如何复制 less 显示的整个缓冲区?
无需选择特定文本,我想要全部。
复制到剪贴板是更好的选择,但如果我们可以将其输出到文件,那也行。
我尝试使用通用vim
命令,如 :w 和列出的命令这里但less
似乎不接受这样的命令。
编辑
我必须能够做到这一点之内 less
。假设less
是pipe
从别名中调用的,我无法控制它less
的实际调用方式。我只能看到结果。
我找到了一种保存缓冲区的方法(请参阅下面的答案),所以现在我只需要看看是否有任何方法可以选择和复制。考虑到限制,可能没有。
答案1
使用如下方法将less
缓冲区转储到剪贴板:xsel
打开文件
$ less file.txt
less
然后压入(|
管内)$
写
xsel -i
并按下进入
less
缓冲区内容应该被复制。
答案2
:s
从内部输入命令less
将缓冲区写入“日志”文件。
来源:
The "s" command is equivalent to specifying -o from within less
答案3
xsel
首先安装- 使用 xsel 复制到剪贴板:
less filename.txt | xsel -i
- 粘贴:
xsel -o
答案4
您可以重新利用 less 的 'v' 命令来实现此目的。
查看 less 的手册页,特别是关于 LESSEDIT 的内容。如果你提前做了一些设置(可能在你的 .bashrc 中),你可以使用 @rwxrwxrwx 的建议:
bash$ export LESSEDIT="%E < %f"
bash$ export EDITOR="xsel -ib"
当 less 运行时,按 'v' 在 $EDITOR 中打开当前文件;在本例中,使用 打开它xsel -ib < {the file's name}
。
使用xsel -ib
将数据放在剪贴板上,因此您可以按 ctrl-V 将数据粘贴到您想要的位置。