我正在运行 Artix Linux 并使用zsh
,无论我取消别名或从我的 中删除它们多少次,这两个别名都会返回aliasrc
:
run-help=man
which-command=whence
而且我了解到的任何可以存储别名的地方都不存在它们,包括:
/etc/profile
/etc/zsh/zprofile (which simply sources /etc/profile)
/etc/bash/bashrc
/etc/bash/bashrc.d/artix.bashrc
/home/$USER/.zshrc
/home/$USER/.zprofile -> /home/$USER/.config/shell/profile
/home/$USER/.config/shell/aliasrc (where I store my aliases)
~$ zsh -ixc : 2>&1 | grep which-command
什么也不返回。
~$ zsh -ixc : 2>&1 | grep run-help
从 中返回一条(长)行/usr/share/zsh/functions/Completion/compaudit
。
..._rubber ruby _ruby ruby-mri _ruby run-help _run-help rup _hosts rusage _precommand...
zsh -o SOURCE_TRACE
返回:
+/home/$USER/.zshrc:1> <sourcetrace>
+/home/$USER/.config/shell/aliasrc:1> <sourcetrace>
+/home/$USER/.zcompdump:1> <sourcetrace>
.zcompdump
包含大量文本,其中包含run-help
and which
,但不包含which-command
, which-command=whence
, or run-help=man
。
看起来 zsh 完成可能是这个问题的根源,但我不知道它的配置的哪一部分是这样做的。
这些别名从何而来,如何永久删除它们?
答案1
这些别名是发行版的一部分,并以语言zsh
设置C
功能在编译后的源代码中。
别名zle
由 中用于命令行的编辑器使用zsh
。在这两种情况下,别名都是默认实现,可以用具有更多功能的函数覆盖;示例函数也包含在zsh
发行版中。的文档访问在线帮助描述了它是如何工作的run-help
,以及文档which-command
也在手册的用户贡献部分。
要删除它们,请将unalias
命令添加到其中之一zsh
启动文件,例如~/.zshrc
:
unalias run-help
unalias which-command