8

有没有办法快速(例如通过键盘快捷键等)引用它写入标准输出的上一个命令输出的输出?

例如,如果我这样做:

which rails

它返回了/usr/local/bin/rails,然后我想在 textmate 中打开该文件,我可以像这样重新输入输出:

mate /usr/local/bin/rails

但是有没有一种方法可以快速引用输出而无需重新输入?

注意:我知道我可以做到mate $(which rails),但我特别希望参考标准输出。

4

2 回答 2

4

我使用带有历史参考的反引号:

$ which rails
/usr/local/bin/rails
$ mate `!!`

实际上,我的编辑器(一个启动 gvim 的脚本)别名为e,所以它看起来更短:

$ e `!!`

并且您始终可以绑定到热键(请参阅 bash 手册页以获取bind命令和readline support)。

此外,如果您可以使用剪切缓冲区(在 X 应用程序中用鼠标选择),类似下面的热键可能会很有用:

$ e $(xclip -out)

该命令将使用命令行上剪切缓冲区中的任何内容启动编辑器。鉴于只需双击即可选择许多路径,因此可以非常快速地编辑选定的路径。

于 2012-07-18T21:08:30.873 回答
-1

你总是可以在反引号中运行命令:

mate `which rails`

我不得不说,虽然感觉有点,呃,有风险。如果您的 PATH 已被篡改,从而返回与您真正需要的不同版本的 rails 怎么办?如果 which 什么都不返回怎么办?因此,请注意关闭所有这些错误情况,或以某种方式避免它们(例如,从配置文件中读取 rails 的路径,并编写一个为您构建该配置文件的工具)。

于 2012-07-18T21:01:36.267 回答