如何使用选项卡生成文件夹中可能条目的列表?
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
在 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
. 的内容使用制表符补全
我在 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
在 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
. 的内容使用制表符补全