终端自动完成功能只能从头开始匹配吗?

终端自动完成功能只能从头开始匹配吗?

例如,如果我输入“ 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

相关内容