有没有办法快速(例如通过键盘快捷键等)引用它写入标准输出的上一个命令输出的输出?
例如,如果我这样做:
which rails
它返回了/usr/local/bin/rails
,然后我想在 textmate 中打开该文件,我可以像这样重新输入输出:
mate /usr/local/bin/rails
但是有没有一种方法可以快速引用输出而无需重新输入?
注意:我知道我可以做到mate $(which rails)
,但我特别希望参考标准输出。
有没有办法快速(例如通过键盘快捷键等)引用它写入标准输出的上一个命令输出的输出?
例如,如果我这样做:
which rails
它返回了/usr/local/bin/rails
,然后我想在 textmate 中打开该文件,我可以像这样重新输入输出:
mate /usr/local/bin/rails
但是有没有一种方法可以快速引用输出而无需重新输入?
注意:我知道我可以做到mate $(which rails)
,但我特别希望参考标准输出。
我使用带有历史参考的反引号:
$ which rails
/usr/local/bin/rails
$ mate `!!`
实际上,我的编辑器(一个启动 gvim 的脚本)别名为e
,所以它看起来更短:
$ e `!!`
并且您始终可以绑定到热键(请参阅 bash 手册页以获取bind
命令和readline support
)。
此外,如果您可以使用剪切缓冲区(在 X 应用程序中用鼠标选择),类似下面的热键可能会很有用:
$ e $(xclip -out)
该命令将使用命令行上剪切缓冲区中的任何内容启动编辑器。鉴于只需双击即可选择许多路径,因此可以非常快速地编辑选定的路径。
你总是可以在反引号中运行命令:
mate `which rails`
我不得不说,虽然感觉有点,呃,有风险。如果您的 PATH 已被篡改,从而返回与您真正需要的不同版本的 rails 怎么办?如果 which 什么都不返回怎么办?因此,请注意关闭所有这些错误情况,或以某种方式避免它们(例如,从配置文件中读取 rails 的路径,并编写一个为您构建该配置文件的工具)。