z.lua 第三弹:快速跳到父目录,避免重复 cd ../../..

2019-02-04 01:59:37 +08:00
 skywind3000

z.lua 新增 "-b" 选项可以快速回到某一级父目录,避免重复的输入 "cd ../../.."。

为了使用简便,我们继续将 z -b 取个别名成 zb

# 一直向上退到项目根目录(就是里面有一个 .git 目录的地方)
~/github/lorem/src/public$ zb
  => cd ~/github/lorem

# cd 到第一个以 g 开头的父目录
~/github/vimium/src/public$ zb g
  => cd ~/github

# 将 jekyll 替换为 ghost
~/github/jekyll/test$ zb jekyll ghost
  => cd ~/github/ghost/test

向后跳转同样也支持环境变量 $_ZL_ECHO(用来显示跳转结果),这样为搭配其他工具提供了可能性(并不需要改变当前工作目录):

# 假设我们位于 ~/github/vim/src/libvterm
# 打开 $_ZL_ECHO 用于在每次跳转后调用一次 pwd 显示当前目录
$ _ZL_ECHO=1

# 看看我项目根目录(有 .git 那个)目录里有什么?
$ ls -l `zb`
  => ls -l ~/github/vim

# 检查 "<项目根目录>/logs" 下面的日志
$ tail -f `zb`/logs/error.log
  => tail -f ~/github/vim/logs/error.log

# 查看一下某一级父目录里有些啥
$ ls -l `zb git`
  => ls -l ~/github

4506 次点击
所在节点    Linux
12 条回复
xiaket
2019-02-04 06:16:08 +08:00
```
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
```

好吧我知道 md 在回复里是不可用的, 不过对于一些人, 这种 alias 会更易用些.
wzw
2019-02-04 08:17:07 +08:00
@xiaket #1 auto jump 还是很有用的
skywind3000
2019-02-04 09:04:55 +08:00
@xiaket 这样最大问题就是你要数需要几个点。

/home/user/project/src/org/main/site/utils/file/reader/whatever

比如你在 whatever,你要回到 src,你是不是要停下来先看看当前目录?再对照着数需要多少个点? z -b 没有这个负担。
xiaket
2019-02-04 09:32:45 +08:00
@skywind3000 我完全同意你的意见, 所以我觉得这儿的 trade-off 是要不要精确到那个目录. 比如我经常进到 python venv 的目录里面去, 要跳出来的时候(如果我在里面切过目录, `cd -`不能工作时)比较讨厌. 按我现在的习惯, 我会先一气打几个点回车, 然后再看下一步是要跳两层还是三层. 我的 prompt 会显示当前目录, 所以于我而言这比记忆某个命令的参数更容易. 我能理解这个需求的出发点和实现方式, 只不过我觉得直接无脑打点更适合我的编程方式. 谢谢
Narcissu5
2019-02-04 09:38:05 +08:00
oh my zsh ?
skywind3000
2019-02-04 09:50:40 +08:00
@Narcissu5 不是 oh my zsh,这个工具可以再所有 shell 上使用,包括 bash, zsh, fish shell, powershell 还有 windows cmd
skywind3000
2019-02-04 09:52:17 +08:00
@xiaket 这个参数是一次性记忆的,z -b 可以 alias 成 zb,上面的例子,回到 src 目录只需要 zb sr 就回去了,比你打点还简单啊。
ttgo
2019-02-04 11:34:13 +08:00
你可以也加上 zb 点点点 的功能啊
jadeity
2019-02-04 11:38:50 +08:00
试用过各种 shell 之后,对于习惯复制粘贴的我,还是 zsh 最好用。
skywind3000
2019-02-04 15:32:47 +08:00
@ttgo 哈哈,堵上他们的嘴,已经加上了,zb .....
masker
2019-02-07 12:12:57 +08:00
alias
skywind3000
2019-02-07 19:34:01 +08:00
@masker alias 有管理负担啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/532926

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX