linux 不区分大小写的ZSH后缀别名

piwo6bdm  于 2023-04-05  发布在  Linux
关注(0)|答案(4)|浏览(142)

在我的.zshrc中,我设置了后缀完成别名,这样我就可以更容易地打开文件:

alias -s -- txt='mate -w'

它允许我在文本编辑器中打开文本文件,而不需要前置编辑器命令。
但是,当我试图打开一个带有大写后缀的文件时,出现了一个问题。ZSH将识别“.txt”并在我的文本编辑器中打开它,但不会打开“. TXT”。
有没有办法使ZSH后缀识别不区分大小写,这样我就可以打开这样的文件?

xienkqul

xienkqul1#

让我猜猜看:)

alias -s -- TXT='mate -w'
alias -s -- Txt='mate -w'
alias -s -- TXt='mate -w'
alias -s -- tXt='mate -w'
alias -s -- txT='mate -w'
alias -s -- tXT='mate -w'
alias -s -- TxT='mate -w'
am46iovg

am46iovg2#

这似乎为我解决了这个问题:

setopt extendedglob
unsetopt CASE_GLOB

我从this question得到了解决方案

e4yzc0pl

e4yzc0pl3#

您可以用小写形式定义后缀别名一次,然后使用以编程方式转换为大写形式的扩展名重新定义它们:

for ext in ${(k)saliases}; alias -s $ext:u=$saliases[$ext]
mtb9vblg

mtb9vblg4#

下面使用t和T,x和X,最后t和T的外推。这实际上只是简单的组合代码,然后分配cat
alias -s {t,T}{x,X}{t,T}=cat
如果你运行类似echo {t,T}{x,X}{t,T}的程序,你可以看到我只是将ttt ttT tTt tTT Ttt TtT TTt TTT插入别名。

相关问题