我倾向于处理多个项目,所有项目都存储在我的主目录(~)内一个名为的目录中web
。
有一次,我的所有项目都在其中的一个目录中;因此要从项目 a 移动到项目 b:
~ $ cd ../project-b
但是现在我已经开始对项目进行分类,这意味着我必须输入
~ $ cd ~/web/project-name
我想编写一个 shell 脚本或别名,以便我可以输入
~ $ command project-name
然后切换到它,使用制表符补全,这样proj
上面的 就可以用制表符补全到project-
。项目可以定义为 内的一个文件~/web
,并可以回退到该目录的任何直接子目录。
整个制表符补全领域确实超出了我的知识范围 - 如果这看起来微不足道,而我最好的选择是阅读更多关于制表符补全的内容,请您评论一个简明的在线资源,我可以尝试自己的解决方案。当然,完整的脚本解决方案也非常受欢迎,我完全错过了 shell 的功能!
答案1
您可以创建指向您想要快速导航到的目录的符号链接:
ln -s ~/web/project-b ~/web/project-name ~
这比实现 shell 脚本加上自定义 Bash 完成脚本简单得多。
另一个无需实现任何操作的简单解决方案是搜索 Bash 历史记录:Ctrl-r启动子字符串搜索,当您输入时,project-name它可能已经找到了该条目。如果没有,请再次按Ctrl-r搜索下一个具有相同子字符串的较旧历史记录条目。使用简单的配置调整您也可以简单地键入cd并按下Up以转到以“cd”开头的早期命令。