如何使用选项卡生成文件夹中可能条目的列表?

How to use tab to generate a list of possible entries in my folder?

我在 mac 和 ZSH 上使用 iTerm 哦,我的 zsh 主题是 dstufft

我在 .bash_rc

中写了这个
 function goToPythonApp {
        # no params given
        if [ -z "" ]; then
            cd ~/Documents/Apps/PythonApps
        else
            cd ~/Documents/Apps/PythonApps/
        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/?[=28 中的有效条目=]

更新

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

然后我在获取 .bash_rc file

之前添加了 autoload bashcompinit && bashcompinit

command not found for complete 不见了,但标签仍然不起作用

你可以使用 bash 完成功能来处理这个

将此脚本添加到您的 rc 文件或 bash_profile 文件,然后重新打开您的终端

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

function _GPA {
    local cur
    cur=${COMP_WORDS[COMP_CWORD]}
    COMPREPLY=( $( compgen -S/ -d ~/Documents/Apps/PythonApps/$cur | cut -b 18- ) )
}


complete -o nospace -F _GPA goToPythonApp

Complete Info on how to do this

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

setopt autocd
pyapps=~/Documents/Apps/PythonApps

autocd 让您只需键入目录名称即可切换到目录,而不是显式使用 cd 命令。

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

结合这两个特征,

  • ~pyapps 等同于 cd "$pyapps"
  • ~pyapps/Project1 等同于 cd "$pyapps/Project1"
  • ~pyapps/<TAB> 将允许您对 $pyapps.
  • 的内容使用制表符补全