^^替换所有先前发生的事件

时间:2014-02-14 18:57:21

标签: bash replace

标题说明了一切。我知道如果我已经发出了命令

dothis dothat

我可以输入

^do^dontdo

会给我

dontdothis dothat

我希望能够输入类似

的内容
^do^dontdo^g

给我

dontdothis dontdothat

有原生方式吗?或者是否可以将其定义为引用!!:gs/do/dontdo语法的函数?

1 个答案:

答案 0 :(得分:0)

内置fc允许修复历史记录中的命令。例如,要使用!! gs/do/dontdo/实现fc,请键入fc -s do=dontdo

解决方案可能是:

r() {
    (($# == 2)) || { echo "r needs two args" >&2 ; return 1 ;}
    fc -s "$1"="$2"
}

用法:r do dontdo