如何在 zsh 中的外部命令补全之前迭代 shell 函数补全和别名补全?

如何在 zsh 中的外部命令补全之前迭代 shell 函数补全和别名补全?

当我点击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

相关内容