【发布时间】:2018-11-18 14:08:23
【问题描述】:
目前,当我执行 cd D+ Tab + Tab zsh 按字母顺序循环以“D”开头的所有文件,但我希望它改为循环反向修改日期。因此,首先向我显示最新的文件,然后在按 Tab 时向后退。
如何让我的终端以这种方式运行?
【问题讨论】:
目前,当我执行 cd D+ Tab + Tab zsh 按字母顺序循环以“D”开头的所有文件,但我希望它改为循环反向修改日期。因此,首先向我显示最新的文件,然后在按 Tab 时向后退。
如何让我的终端以这种方式运行?
【问题讨论】:
只需将以下内容添加到您的~/.zshrc:
zstyle ':completion:*:cd:*' file-sort modification
这将仅更改 cd 命令的文件完成顺序。任何其他程序的完成仍将按词汇顺序排列。如果您想将此排序扩展到特定的其他程序,例如 cat 和 vim,您可以通过添加以下代码来实现:
zstyle ':completion:*:(cd|cat|vim):*' file-sort modification
如果您想对所有文件名补全使用此顺序,则以下方法可以解决问题:
zstyle ':completion:*' file-sort modification
欲了解更多信息,请查看zshcompsys manpage。
如果您还没有使用“新”补全系统,您可以通过运行compinstall 启用它,这将允许您以交互方式设置补全系统。 (它是新的,因为它还有一个旧的补全系统,也有最新的补全系统。但它是在 1999 年随版本 3.1.6 引入的,所以它已经是任何当前 zsh 安装的一部分,任何只需要待配置)
或者,您只需将以下行添加到您的.zshrc 以获得最小/默认配置。
# The following lines were added by compinstall
zstyle :compinstall filename "${ZDOTDIR:-$HOME}/.zshrc"
autoload -Uz compinit
compinit
# End of lines added by compinstall
【讨论】:
compinit 命令是否出现在您的配置中?此外,.zprofile 只会为 login shells 加载(例如控制台或 SSH)。在终端仿真器中,ZSH 通常作为 interactive shell 运行,因此.zprofile 可能不会被加载。 (从你的问题我无法真正判断,情况就是这样。)
compinit。什么配置?我会尝试安装它