我将shell从bash更改为zsh,我想知道是否有可能像Sublime Text调色板那样模糊完整的命令。我认为搜索,完成的概念必须无处不在。节省大量时间。

示例:
cd dcmts -> cd Documentscd dwnls/mnf -> cd Downloads/MyNewFolder
我看到了以下项目,但它并不令人信服。

zsh-fuzzy-match

而且似乎可以定义一些设置或算法来配置zsh在完成时的行为。
zstyle ':completion:*' completer _complete _match _approximatezstyle ':completion:*:match:*' original onlyzstyle ':completion:*:approximate:*' max-errors 10 numeric
前两个解决方案的问题是,完成时文件夹并没有出现在列表的顶部,而文件夹通常是用户想要的。

如果您有任何有趣的可用于模糊搜索的.zshrc,它将会很有趣。

谢谢你的帮助。

最佳答案

您能举一个在完成时没有出现在列表顶部的文件夹的例子吗?似乎您的配置中有一些东西可以帮您解决。默认情况下,Zsh将仅使用目录完成cd:

zsh -f # new Zsh with only default configs
% zstyle ':completion:*' completer _complete _match _approximate
% zstyle ':completion:*:approximate:*' max-errors 3 numeric
% mkdir test && cd test
% mkdir etc && touch et0
% autoload -U compinit && compinit
% cd et0[TAB] # removes the 'et0' and replaces it with 'etc'.

FWIW,对于“到处搜索和完成”,请考虑尝试predict https://stackoverflow.com/a/17230878/766289(我觉得有点疯狂……)

另外,在Zsh中,您可以执行以下操作:
setopt auto_cd
alias -d build=/home/foo/very/long/path/build # dir alias
build # <-- changes into /home/foo/very/long/path/build

要不就
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' # match upper from lower case
cd d/m[TAB] # just type the initial letter of each dir
cd Downloads/MyNewFolder

我的意思是cd d/mcd dwnls/mnf要求更少的输入;-)

关于zsh - 如何向ZSH添加模糊补全(如Sublime Text调色板),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21582639/

10-15 00:42