例如,如果我输入“ apt-
”并按下 Tab 键,我可以apt-get
在下面找到“ ”。但是如果我输入“ get
”,则不会出现“ apt-get
”。我该怎么做才能不从头开始匹配?
答案1
据我所知,不可能一次搜索所有可能命令的子字符串。
Ctrl不过,你可以选择使用+键搜索之前输入的命令的子字符串R,然后输入子字符串。你可以再次按Ctrl+ 键R循环显示包含此子字符串的之前输入的命令
答案2
zsh
也许能够让你成功一半:
对我来说,zsh
似乎更喜欢前缀补全(file<tab>
will get me file filefrag file-roller
,-file<tab>
will get me apt-file desktop-file-install ecryptfs-rewrite-file grub-file ...
)。我对补全系统的理解不够深入,无法让 zsh 进行子字符串匹配,即使前缀匹配有效。我的补全选项:
# The following lines were added by compinstall
zstyle ':completion:*' completer _expand _complete _ignored
zstyle ':completion:*' list-suffixes true
zstyle ':completion:*' matcher-list '' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}'
zstyle ':completion:*' squeeze-slashes true
autoload -Uz compinit
compinit
# End of lines added by compinstall