我在Mac和ZSH上使用iTerm,哦,我的zsh使用主题dstufft
我在.bash_rc中写了这个

 function goToPythonApp {
        # no params given
        if [ -z "$1" ]; then
            cd ~/Documents/Apps/PythonApps
        else
            cd ~/Documents/Apps/PythonApps/$1
        fi
   }

所以我可以输入goToPythonApp abc
然后我将切换到~/Documents/Apps/PythonApps/abc
但是有时候,我忘记了~/Documents/Apps/PythonApps/中的文件夹名称

有没有一种方法可以键入goToPythonApp,然后按<space>然后按<tab>来生成~/Documents/Apps/PythonApps/中的条目列表?

类似于ZSH(或oh-my-zsh)如何对半类型命令执行自动完成?

或者可以输入goToPythonApp ab,然后按<tab>,自动完成功能会建议abc,这是~/Documents/Apps/PythonApps/文件夹中的有效条目?

更新

使用下面答案中建议的技术,然后我得到了command not found for complete

然后我在添加autoload bashcompinit && bashcompinit之前添加了.bash_rc filecommand not found for complete不见了,但标签仍然不起作用

最佳答案

在Zsh中,不需要功能。将以下内容添加到您的.zshrc文件中:

setopt autocd
pyapps=~/Documents/Apps/PythonApps
autocd允许您仅通过键入目录名称而不是显式使用cd命令来更改目录。

静态命名目录(在FILENAME GENERATION下的man zshexpn中描述)可让您定义目录的〜前缀别名。只要pyapps不是您系统上用户的名字,变量的内容就会在您使用~pyapps的任何地方替换它。

结合这两个功能,
  • ~pyapps等效于cd "$pyapps"
  • ~pyapps/Project1等效于cd "$pyapps/Project1"
  • ~pyapps/<TAB>将让您对$pyapps的内容使用制表符补全。
  • 关于bash - 如何使用制表符在我的文件夹中生成可能的条目列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49375183/

    10-13 07:25