2015年4月编辑:如果您有同样的问题,我建议您也检查http://xiki.org/
我知道终端不是这样工作的,但我常常希望有一种简单的方法来使用文本(复制文本、修改文本等等),而这种方式已经在我的终端窗口历史记录中从以前的命令输出中得到了使用。
我想象过是这样的:
我在bash即将输入一个命令,我意识到我需要键入屏幕上已经出现的内容,上面几行。我可以够到鼠标并选择它,但我讨厌它。此刻我真正希望的是,我的整个终端变成了一个巨大的Vim缓冲区,所有这些都是:提示、我输入的命令以及这些命令的输出。所有的一切。然后,我可以跳几行,也许编辑一点,然后抽出一些文字。然后,返回bash模式并粘贴我在当前命令行中单击的任何内容。
我知道有一些选择:
所以问题是:在这种情况下你会做什么?在这个场景中,有什么技巧、工具、shell功能可以使用吗?你只是辞职使用鼠标或重新键入任何您需要键入的?
问题可能是我不是在做‘unix方式’,但是拜托,这是2010年,我不能轻易地在光标之外复制几行文字?
发布于 2010-08-12 09:52:26
您可以使用脚本(使用-f确保每次刷新),并且可以将所有输出保存在一个文件中。
使用终端复用器(屏幕、tmux等)。例如,对于屏幕http://web.mit.edu/gnu/doc/html/screen_11.html#
命令:复制,输入复制/回滚模式。这允许您将文本从当前窗口及其历史记录复制到粘贴缓冲区中。在这种模式下,类似vi的全屏编辑器处于活动状态,控件如下所示。
其他终端多路复用器肯定具有更先进的功能。
发布于 2010-08-12 09:55:54
在emacs中,M壳处理以前输出的版本。您可以很容易地复制粘贴以前的命令输出,或缓冲区的任何部分,就像一个常规缓冲区。我很确定应该有一个vim等价物。
发布于 2010-08-12 11:54:01
在tmux (终端多路复用器)中,您可以按Ctrl+A-[切换到Vi缓冲区模式,您可以在屏幕周围导航,来回滚动缓冲区,复制文本等等。默认的快捷方式实际上是Ctrl+B-[但这显然是要重新配置的。此外,默认的缓冲区模式是Emacs,但您可以将其配置为Vi。
看看tmux,它确实是一个伟大的现代终端复用器。除了使用缓冲区之外,您还可以在多个窗口中拆分屏幕,从多个终端连接到同一会话等。为了最终的方便,您甚至可以将其作为登录shell,如果您告诉它实际的shell是什么。
在OpenBSD上,tmux甚至成为基本系统的一部分。
有关详细信息,请参阅tmux手册页。还请参阅http://tmux.sourceforge.net/上的截图
https://unix.stackexchange.com/questions/385
复制相似问题