1

正如主题行所说,我想要一种更快的方式来输入“2>&1 | tee build.log”

或者更好的是,我想要一个扩展为 2>&1 | 的快捷方式 tee $1.$2.log" 其中 $1 和 $2 取自当前行。

我尝试了一些不同的东西,这是我发现的问题

  1. 别名似乎仅适用于第一个单词(或另一个别名之后的第一个单词)。所以我很确定他们帮不上忙。
  2. 一个函数可以工作 - 例如“log ant compile”,但它具有破坏选项卡扩展的不良副作用,因为它将第一个 arg 移动到第二个等。
  3. 变量可以起作用,例如 LOG='2>&1 | tee build.log',除非它必须使用 esc-ctrl-E 手动扩展,否则 2>&1 作为参数传递。

有人知道更好的方法吗?

谢谢-卡特

4

1 回答 1

3

我可以建议第四个选项,一个 readline 宏吗?

将以下内容添加到您的~/.inputrc文件中(如有必要,请创建它):

"\C-x\C-l": " 2>&1 | tee build.log"

新的 shell 会自动处理这个文件;您可以尝试通过按 Control-x Control-r 重新读取当前 shell 中的文件(我忘记了是否默认配置)。

现在,只要您按下 Control-x Control-l,文本“2>&1 | tee build.log”就会插入到光标处。

更新:

"\C-x\C-l": "\eb\eb2>&1 | tee \ef\C-d.\ef"

将允许您输入

build log

后跟 Control-x Control-l 将其转换为

2>&1 | tee build.log
于 2012-07-25T19:02:35.647 回答