You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在zsh中用...替代../..指代祖辈目录,实现M-3 .生成../../..?

在zsh中实现用...指代上级目录的技巧

嘿,这个需求我太熟了!之前oh-my-zsh和prezto自带的这个便捷功能,自己在原生zsh里也能轻松配置,分两步就能搞定:

一、让...自动扩展为../..,以此类推

你只需要在~/.zshrc配置文件里添加一段自定义函数和绑定,就能实现输入.时自动补全上级目录的效果:

# 扩展...为../..,....为../../..,以此类推
function expand-dot-to-parent-directory-path {
  if [[ $LBUFFER = *.. ]]; then
    LBUFFER+=/..
  else
    LBUFFER+=.
  fi
}
zle -N expand-dot-to-parent-directory-path
bindkey "." expand-dot-to-parent-directory-path
bindkey -M isearch "." self-insert

这段代码的作用是:

  • 输入第一个.时,就是普通的点;
  • 输入第二个.变成..(上级目录);
  • 输入第三个.时,会自动把...转换成../..(祖父目录);
  • 继续输入.的话,每多一个就多一级上级目录,比如....会变成../../..;
  • 同时特意保留了搜索模式(isearch)下的.为普通输入,避免影响你搜索文件时的操作。

二、绑定M-3 .快捷键生成../../..

如果你想要按下Alt+3+.直接插入../../..,可以在~/.zshrc里再添加这段配置:

# 绑定Alt+3+. 快速插入../../..
bindkey '^[3.' insert-three-level-up
function insert-three-level-up {
  LBUFFER+=../../..
}
zle -N insert-three-level-up

这里的^[代表Alt键(大部分终端都兼容这个写法),绑定后按下Alt+3再按.,就能直接在命令行里插入三级上级目录的路径。

最后一步:生效配置

写完上面的内容后,保存~/.zshrc,然后在终端里执行:

source ~/.zshrc

或者直接重启终端,所有配置就会生效啦!

内容的提问来源于stack exchange,提问作者Toothrot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:07:11