git完成被bash配置文件别名“ test”破坏了

发布时间:2020-07-06 16:20

我在bash个人资料中有一个别名,如下所示:

alias test='cd /Usr/work/dir/test'

每次我尝试在终端中使用git的bash完成时,都会:

  1. 点击选项卡后立即冻结终端。
  2. 带我到该目录。

一旦我删除了git的别名bash完成,就可以正常工作。为什么那样?

git版本2.26.2

GNU bash,版本3.2.57(1)-发行版(x86_64-apple-darwin19) 版权所有(C)2007自由软件基金会,公司。

回答1

test是一个内置命令,创建一个名为test的别名会使其模糊,这可能会导致无法预料的问题。选择其他名称。

alias goto_test='cd /Usr/work/dir/test'

但是,这可能是最小理想的解决方案。首先,请考虑使用函数代替

goto_test () {
    cd /Usr/work/dir/test
}

第二,您可以将/Usr/work/dir添加到您的CDPATH变量中,以便您可以快速切换到 any 子目录,而不必使用整个路径。

$ CDPATH=/Usr/work/dir
$ cd test
/Usr/Work/dir
$ pwd
/Usr/Work/dir/test

如果您通常会切换到多个目录,则不必定义多个别名或函数。