修改 bash tab 补全功能,使其更像 zsh

修改 bash tab 补全功能,使其更像 zsh

我在 Mac 上,cp 和 mv 命令让我很头疼,因为如果末尾有斜杠,它们就会复制目录的内容。当我使用制表符补全来指定要复制的目录时,它已经困扰了我好几次。

我注意到 zsh 有一个巧妙的功能,如果按下空格或回车键后不需要尾部斜线,它会删除它。有没有办法让 bash 模仿这种行为?

答案1

Bash 补全无法捕获空格或回车键。它仅适用于 tab 键。

对于您的问题,我认为您可以编写一个小包装脚本来在将命令行传递给实际的 cp/mv 程序之前删除尾随斜杠。

例如,〜/ bin / my_mv:

#!/bin/bash

argv=("$@")
last="${argv[$# - 1]}"
last="${last%/}"
argv[$# - 1]="$last"

mv "${argv[@]}"

相关内容