【问题标题】:Case-Insensitive ZSH Suffix Aliases不区分大小写的 ZSH 后缀别名
【发布时间】:2009-07-18 18:28:03
【问题描述】:

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

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

这允许我在我的文本编辑器中打开文本文件,而无需预先添加编辑器命令。

但是,当我尝试打开带有大写后缀的文件时,会出现问题。 ZSH 会识别“.txt”并在我的文本编辑器中打开它,但不能识别“.TXT”。

有什么办法可以让 ZSH 后缀识别不区分大小写,这样我就可以打开这样的文件了?

【问题讨论】:

  • hm,甚至 nocaseglob 也会被别名 -s 忽略

标签: linux unix shell zsh


【解决方案1】:

让我大胆猜测一下:)

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'

【讨论】:

    【解决方案2】:

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

    setopt extendedglob
    unsetopt CASE_GLOB
    

    我从this question得到了解决方案

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-03
        • 2016-11-24
        • 2020-12-09
        • 2021-04-12
        • 1970-01-01
        • 2012-12-01
        • 2013-03-06
        相关资源
        最近更新 更多