编辑 2015 年 4 月:如果您有同样的问题,我建议您也查看http://xiki.org/
我知道这不是终端的工作方式,但我发现自己经常希望有一种简单的方法来使用文本(复制、修改等),这些文本已经存在于我的终端窗口历史记录中,来自之前的一些命令输出。
我是这样想象的:
我正在我的 bash shell 中输入一个命令,但我意识到我需要输入一些已经出现在屏幕上方几行的内容。我可以伸手去拿鼠标并选择它,但我讨厌那样。此刻我真正希望的是我的整个终端变成一个巨大的 Vim 缓冲区,所有这些:提示、我输入的命令以及这些命令的输出。一切。然后我可以跳几行,也许编辑一下,然后猛拉一些文本。然后,返回 bash shell 模式并将我拉到的任何内容粘贴到当前命令行中。
我知道有一些选择:
自然地,将我需要的文本直接从某个命令的输出传送到一个文件,或者直接传送到下一个命令。但是为此,您必须提前计划或重新执行历史记录中的命令(假设输出在调用之间不会改变)。
到达鼠标并选择要复制的文本。跛脚,烦人,我希望我没有这样做,(这不是 GUI stackexchange 站点,是吗?=)
使用我的 (Mac OS X) 终端应用程序的“将文本导出为...”选项,并将终端文本保存到文件中。然后打开文件并使用它。差不多,但是为什么要执行保存到磁盘上的文件的步骤?
所以问题是:在这种情况下你会怎么做?在这种情况下,是否有任何技巧、工具、外壳功能可能有用?您只是辞职使用鼠标还是重新输入您需要输入的内容?
可能是问题在于我不是在以“unix 方式”做事,但是拜托,这是 2010 年,我无法轻松复制距光标几行远的一些文本?
所以我在一些函数中使用代码,比如
if [ ! -e $DOWNLOADS/$1 ]; then
echo_run curl -L http://$4/$5/$1 -o $DOWNLOADS/$1
fi
Run Code Online (Sandbox Code Playgroud)
我想知道如何在没有卷曲的情况下实现同样的目标?