我想配置 bash,以便当我在不带参数的情况下执行命令(最好是从命令列表中,而不是任何命令)时,它会采用上一个命令的参数。
因此,例如我输入emacs ~/.bashrc
,然后当我输入 时source
,bash 就会执行source ~/.bashrc
。我知道这是可能的,但我不知道在哪里寻找这样的选择。
答案1
您可以Space在按 之前按Meta+ 。这样做的优点是,即使对于应用于无参数时有意义的命令,您也可以使用它。对于,用于减少键入。.Entersource
.
如果您是老派,则可以使用 来!^
调用上一个命令中的第一个参数,或者!$
调用最后一个参数,或者!*
调用所有参数(命令名称除外)。
您可以通过编写围绕每个命令的函数来准确地获得您所描述的行为。上一个命令的最后一个参数在特殊参数中可用$_
。
make_wrapper_to_recall_last_argument () {
for f do eval <<EOF; done
function $f {
if [ \$# -eq 0 ]; then set -- "\$_"; fi
command $f "\$@"
}
EOF
}
make_wrapper_to_recall_last_argument source .
答案2
我知道的结束策略是Alt+.
这允许您循环遍历所有先前的参数。