Muh*_*ana 16 less man copy-paste clipboard
我正在我的机器上查看一个软件的手册页,我需要复制粘贴一些文本,但文本远不止一页。我知道我可以将输出定向到文件并使用基于 UI 的软件(例如gedit)来复制我需要的文本。但这可以从终端完成吗?
Joseph建议了一个命令行方法(对我来说有点复杂,我还不太擅长 Linux 上的正则表达式)。但我想知道是否有办法在我还在终端上时使用 mouse来做到这一点。
我希望我得到一个通用的答案,但是,我使用的是 Ubuntu。
小智 11
我有一些不完美但可能有用的想法。
使用终端滚动条。
详细信息(假设xterm
;其他终端需要调整。)
xterm
,它位于您使用 Ctrl+Button2 获得的菜单中。)less
没有使用该-c
选项运行(我在我的LESS
环境变量中启用了此选项,但它会干扰我们将要执行的操作,因此我必须键入-c
以将其关闭。)less
您喜欢的任何命令,向上或向下滚动,以便您要复制的第一行在屏幕上可见。/
搜索 - 这里的重点是less
将所有行发送到终端,以便可以复制它们。可能的困难:您的回滚缓冲区可能不够大。可以xterm
使用saveLines
资源或-sl
命令行选项更改它,但我不知道在已经运行的 xterm 中更改它的方法。
使用|
(pipe) 命令less
将文本发送到xclip
.
细节:
less
您喜欢的任何命令,向上或向下滚动以将要复制的最后一行放置在屏幕顶部。如果想一直复制到最后,可以跳过这一步和下一步。m
(mark) 命令在您选择的结束位置设置一个标记。标记本身就是一个有用的功能,您应该已经从 中了解它们vi
,但以防万一:mx设置一个标记,其中x
可以是任何字母,并'x稍后返回给您。x
应该是相同的标记字母您在使用m
命令,或$
为“一路到底”。键入xclip
那里。复制整个手册页的简单情况减少到g|$xclipEnter.
警告(即刚刚发生在我身上的可怕事情):xclip
将是半背景的,作为less
进程组的一部分运行。如果您尝试挂起less
,在同一终端上启动另一个作业,然后粘贴到其中,它将无法工作。然后,当您稍后将man
/less
作业置于前台时,粘贴会突然通过。我认为这应该被视为一个xclip
错误......
正如Nixcraft 上所述:
得到xclip
:
sudo apt-get install xclip
Run Code Online (Sandbox Code Playgroud)
或者
yum install xclip
Run Code Online (Sandbox Code Playgroud)
在基于 RPM 的系统上。
man man | your_magic_here | xclip -selection clipboard
-selection clipboard
通过单击鼠标中键来删除选择粘贴(称为主要选择)。请注意,这your_magic_here
是文本过滤器的占位符(sed
/ awk
/ perl
/...),它根据您的具体用例选择手册页的所需部分,您没有描述,所以恐怕我无法具体说明举个例子。