目前,我的 .zshrc 中有以下内容:
bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search
Run Code Online (Sandbox Code Playgroud)
但是,这似乎只在出现空格字符之前与我当前输入的内容相匹配。例如,sudo ls /
将匹配我历史记录中以 开头的每一行sudo
,而我希望它只匹配与我的整个输入匹配的行。(即sudo ls /etc
会匹配,但不会sudo cat /var/log/messages
)
为了获得所需的行为,我需要改变什么?
这是我的整个 .zshrc 以防万一它是相关的:https : //gist.github.com/919566
目前,当我第一次点击 Tab 时,ZSH 会显示一个菜单,并且完成不明确。所以,如果我在命令提示符中有 'cd' 并且我点击了 tab,它会显示不同的可用完成。如果我再次点击 Tab,它将选择第一个可用的完成。
我想将这两个步骤合并为一次按 Tab 键。所以,如果我在 'cd' 并且我使用 tab,我希望 ZSH 插入第一个可用匹配(当不明确时)并显示菜单,如果第一个匹配不是我拥有的目录,我可以通过 tab心里。
ZSH 设置工具将它放在我的 .zshrc 中,以防其中任何一个影响我的 shell 的行为:
zstyle ':completion:*' 完成器 _expand _complete _ignored zstyle ':completion:*' 列表颜色'' zstyle ':completion:*' list-prompt %SAt %p: 点击 TAB 获取更多信息,或插入 %s 的字符 zstyle ':completion:*' 匹配器列表 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' '' 'm:{[:lower:] [:upper:]}={[:upper:][:lower:]}' zstyle ':completion:*' 菜单选择=5 zstyle ':completion:*' select-prompt %SScrolling active: 当前选择在 %p%s zstyle :compinstall 文件名 '/home/robb/.zshrc'