在 bash 的路径自动补全中保留变量名称,类似于 zsh 的行为

Retaining Variable Name in Path Autocompletion in Bash, Similar to Zsh's Behavior

提问人:N00B_141 提问时间:10/31/2023 更新时间:10/31/2023 访问量:30

问:

我目前正在 Bash 环境中工作,并定义了一个变量“Codes”来表示目录路径,如下所示:

export Codes="/home/ubuntu/Desktop/Codes"

这一行包含在我的 .bashrc 文件中。当我执行该命令时,它会成功导航到所需的目录。但是,当我尝试导航到子目录并使用 tab 进行自动完成时,会出现一个问题。在这种情况下,Bash 会在变量名称前面加上一个反斜杠,从而抑制正确的变量扩展。cd $Codescd \$Codes/...

为了解决这个问题,我尝试在定义变量时使用单引号:

export Codes='/home/ubuntu/Desktop/Codes'

虽然这种方法没有在反斜杠前面加上反斜杠,但它在自动完成过程中完全扩展了变量,这不是我想要的结果。(如:$Codes/home/ubuntu/Desktop/Codes/Python/...)

相比之下,Zsh的行为更符合我的喜好。当我键入并按 Tab 键时,它保留了变量名称,同时还允许自动完成子目录。路径仍为cd $Codes/Py$Codes/Python/

有没有办法在 Bash 中实现相同的行为?

PS:我尝试在 Bash 中使用,但它产生的结果与在变量定义期间使用单引号的结果相同。shopt -s direxpand

bash 自动完成

评论


答: 暂无答案