Zsh Z自动完成cp目标目录
我已经有一段时间没有使用zsh的Zsh Z自动完成cp目标目录,zsh,oh-my-zsh,cp,Zsh,Oh My Zsh,Cp,我已经有一段时间没有使用zsh的z命令了:它基于频率的特性非常有用!我现在正在寻找类似的自动完成,以便在使用cp时完成目标: 预期:行为: $: ls -> foo.txt bar.txt $: cp + TAB -> suggests iteratively foo.txt and bar.txt $: cp foo.txt rece + TAB -> suggest /home/user/Documents/recent_directory 有什么办法吗?谢谢你的帮助 是
z
命令了:它基于频率的特性非常有用!我现在正在寻找类似的自动完成,以便在使用cp
时完成目标:
预期:行为:
$: ls
-> foo.txt bar.txt
$: cp + TAB
-> suggests iteratively foo.txt and bar.txt
$: cp foo.txt rece + TAB
-> suggest /home/user/Documents/recent_directory
有什么办法吗?谢谢你的帮助 是的,有:只需安装即可
(免责声明:我是
zsh autocomplete
的维护者)另一种方法是使用动态命名目录
假设您有一个函数ffzget
,它使用fzf
选择最近的目录。然后你可以:
function zsh_directory_name_1() {
local type="$1" arg="$2"
if [[ "$type" == n ]] ; then
# Dynamic named directories
# e.g., `ll ~[dl]`
o="$(ffz-get "$arg")"
typeset -ga reply
reply=("$o")
return 0
elif [[ "$type" == c ]]; then
return
elif [[ "$type" == d ]]; then
return 1
else
echo "$0: Unknown type '$type'"
return 1
fi
return 1
}
typeset -ag zsh_directory_name_functions=()
zsh_directory_name_functions+='zsh_directory_name_1'
您可以在中看到我自己的ffzget
实现,但是您需要对它进行调整,以便在不使用我所有的dot文件的情况下使用它
这整件事让你可以这样做你的例子:
cp foo.txt ~[rece
# typing the closing ']' will open `fzf` so that you select the candidate you want
cp foo.txt ~[rece]/bar.txt
请注意,我自己的ffzget
缓存每个查询的用户选择(在redis
中),我不确定这是否必要