我有一个shell模式,标志着一些文件“无聊”,即备份文件, pyo
文件,vim备份,自动生成的目录等。 我们称之为$BORING_STUFF
。
zstyle ':completion:*' file-patterns \ '%p:globbed-items' \ '*(^-/):regular-files' \ '*(^-/):boring-files' \ '.*(^-/):hidden-files' \ '*(-/):regular-directories' \ '*(-/):boring-directories' \ '.*(-/):hidden-directories'
在这种情况下,每个组的范围也受到适用ignore-patterns
限制。 (这样的boring-files
只包含无聊的文件和regular-files
不包含无聊的文件)
我想要大胆的项目总是显示出来,其他项目只有在没有其他匹配时才显示出来。 (也就是说, touch <tab>
会显示普通的目录和常规文件,但不会隐藏文件,而touch .<tab>
会显示隐藏的文件。
开始了。
setopt extended_glob zstyle ':completion:*' file-patterns \ "^($BORING_FILES|.*)(-/):directories:normal\ directories %p~($BORING_FILES|.*)(^-/):globbed-files:normal\ files" \ "^($BORING_FILES|.*)(^-/):noglob-files:noglob\ files" \ ".*~($BORING_FILES)(^-/):hidden-files:hidden\ files .*~($BORING_FILES)(-/):hidden-directories:hidden\ directories" \ "($BORING_FILES)(^-/):boring-files:boring\ files ($BORING_FILES)(-/):boring-directories:boring\ directories" \ zstyle ':completion:*' group-order \ builtins expansions aliases functions commands globbed-files \ directories hidden-files hidden-directories \ boring-files boring-directories keywords viewable