【问题标题】:Zsh tab-completion for "cd .." [closed]“cd ..”的 Zsh 选项卡完成 [关闭]
【发布时间】:2010-10-08 13:21:53
【问题描述】:

如何配置 Zsh 选项卡补全,以便当我键入 cd ..<TAB> 时它会扩展为 cd ../ 并在再次按下 <TAB> 后建议父目录中的文件夹完成?

例如它应该显示与键入时相同的行为,例如 cd Documents<TAB> 扩展为 cd Documents/ 并在再次按下 <TAB> 后建议 Documents 中的文件夹完成。

作为配置的起点,我使用一个空的.zshrc 和来自 MacPorts 的 Zsh 4.3.9。

【问题讨论】:

  • 一直有这个疑问

标签: macos shell autocomplete zsh


【解决方案1】:

debian 不稳定,Ubuntu jaunty 也有同样的问题,都发布了 zsh 4.3.9。我知道有多个不同配置的人。

看完http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=514152我加了

zstyle ':completion:*' special-dirs true

到我的配置,现在一切正常。

【讨论】:

  • man zshcompsys 也建议这样做:zstyle -e ':completion:*' special-dirs '[[ $PREFIX = (../)#(|.|..) ]] && reply=(..)' 避免了“./”和“../”一直被提出。
【解决方案2】:

其实我现在发现问题似乎不是来自于配置。使用仅包含的.zshrc

autoload -Uz compinit
compinit

当使用默认的 Mac OS X Zsh (4.3.4) 时,tab-completion 的工作方式与 cd ..<TAB> 的预期相同。但是对于 MacPorts Zsh (4.3.9),tab-completion 仅适用于其他文件夹,不适用于 ..

【讨论】:

    【解决方案3】:

    把它放到你的 ~/.zshrc 中:

    autoload -Uz compinit
    compinit
    

    http://code.google.com/p/zsh-templates-osx/ 上还有一个带有 zsh 功能/配置的 Mac OS X 项目。就个人而言,我认为使用整个软件包有点过头了。但发现挑选一些技巧、函数、补全等并创建我自己的 .zshrc 很有用

    【讨论】:

    • 谢谢,这正是我想要的行为。
    • 选项 z 在你的代码中有什么作用?
    • autload 命令行选项: -U -- 禁止函数的别名扩展 -k -- 标记函数以进行 ksh 样式自动加载 -t -- 打开函数的执行跟踪 -w -- 指定参数引用到用 zcompile -z 编译的文件 -- zsh 样式自动加载的标记函数
    • 但是...我的 .zshrc 中有那个,我的 ... 文件夹没有完成。 :P 那里发生了什么?
    【解决方案4】:

    这可能是一个有用的答案,也可能不是一个有用的答案 - 切换到 bash,它可以满足您开箱即用的需求。

    【讨论】:

    • 这有点像告诉vim用户切换到emacs,因为他找不到配置开关......恕我直言zsh比bash更强大,并且还带有很棒的补全功能。你只需要激活它...
    猜你喜欢
    • 2013-02-14
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 2020-02-08
    相关资源
    最近更新 更多