【问题标题】:Case-insensitive matching with Eshell?与 Eshell 的不区分大小写匹配?
【发布时间】:2011-09-03 11:47:10
【问题描述】:

如何使用 Eshell 进行不区分大小写的模式匹配?使用 Zsh,可以使用“globbing tags”(即,如果打开了 extended_glob),例如在

print L(#i)in(#I)ux

例如匹配LINux

Eshell 有类似的东西吗?据我所知,Eshell 不支持 Zsh 的“通配标签”之类的东西,但是您知道是否有用于不区分大小写匹配的 Eshell 谓词?如果没有,您对如何在 Eshell 中定义谓词有什么建议吗?

谢谢!

【问题讨论】:

    标签: emacs pattern-matching elisp glob eshell


    【解决方案1】:

    (setq eshell-glob-case-insensitive t) 不起作用。

    (setq eshell-cmpl-ignore-case t) 这行得通。 把它放在你的.emacs.emacs.d/init.el 中。

    【讨论】:

      【解决方案2】:

      您可以将变量 eshell-glob-case-insensitive 设置为 true 以在 eshell 中启用不区分大小写的通配符。

      【讨论】:

      • 谢谢!我错过了这个变量。只是一个旁注。使用 Zsh,如果您将 (#i) 标志放在路径的开头,例如 (#i)/Doc/,Zsh 将搜索 DOCDoC 等。但是因为您也可以在搜索模式的中间使用标志, Zsh 允许您减少 shell 将要查找的匹配项的数量——这可能会加快匹配过程。出于这个原因,我认为如果 eshell 有类似 Zsh 标志的东西会很好。但也许我只是抱怨太多:)
      猜你喜欢
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 2017-11-14
      • 2012-03-15
      • 1970-01-01
      相关资源
      最近更新 更多