当我点击TAB迭代部分命令的可能完成时,首先迭代外部命令完成:
user@user-X550CL ~ % apt
Completing external command
apt aptd apt-key
apt-add-repository aptdcon apt-mark
apt-cache apt-extracttemplates apt-sortpkgs
apt-cdrom apt-ftparchive apturl
apt-config apt-get apturl-gtk
Completing shell function
apt-get_all
Completing alias
apt-get_autoremove_clean apt-get_update apt-get_update_upgrade
在上面的例子中,需要再点击 17 次TAB才能到达apt-get_autoremove_clean
(或输入额外的内容-get_
并再点击TAB3 次)。
在大多数情况下,如果首先迭代 shell 函数和别名,我会发现它会更方便。
有没有办法设置zsh
首先迭代 shell 函数和别名?
答案1
查看文档,这可能会起作用:
$ zstyle ':completion:*:*:-command-:*' group-order aliases functions commands
$ sudo<tab>
sudoa
sudof
sudo sudoedit sudoreplay
(如果不明显的话,sudoa
是一个别名并且sudof
是一个函数。)
答案2
另一位答复者给出了运行的命令,但没有告诉您如何使其成为默认命令。
运行此命令:
echo "zstyle ':completion:*:*:-command-:*' group-order aliases functions commands" >> ~/.zshrc