僅在單字開頭完成

僅在單字開頭完成

我遇到了 ZSH 自動完成的問題,並且找不到正確的按鍵來解決它。

例如,對於像這樣的文件

$ ls
Accelion, titi toto tata

我想寫:

$ ls cc<TAB>

並且得到__completion,而不是Accelion.

以下是目前設定的選項:

$ set -o | grep " on"
alwaystoend           on
autocd                on
autonamedirs          on
autopushd             on
nobeep                on
cdablevars            on
extendedhistory       on
noflowcontrol         on
nohistbeep            on
histexpiredupsfirst   on
histignoredups        on
histignorespace       on
histverify            on
incappendhistory      on
interactive           on
interactivecomments   on
nolistambiguous       on
nolistbeep            on
longlistjobs          on
nonomatch             on
promptsubst           on
pushdignoredups       on
shinstdin             on

zle如果您需要更多詳細信息,例如選項(以及如何轉儲它!),請告訴我

編輯:桀騁4.3.17(x86_64-redhat-linux-gnu)

答案1

你沒有提到zsh你用的是什麼版本。我假設版本 4。

您的zshshell 首先執行匹配,而不是您可能習慣的真正完成。可以透過對完成器進行排序和可選的自訂來自訂此行為。您可以在以下位置找到有關如何執行此操作的更多信息本指南

您看到的行為可能是不區分大小寫的匹配:

zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'

在不深入研究指南的情況下修復此行為的最快方法是找到並註解掉上面的類似行,或者運行autoload -Uz compinstall然後compinstall。這將引導您完成基本精靈來自訂zsh行為方式。它會問您一些問題,然後創建一個簡單的~/.zshrc問題,您可以在對選項更加熟悉後進行自訂。先把你的~/.zshrc行為複製下來,這樣如果你想保留某些行為,你就有一個參考。

相關內容