命令行下快速跳转目录的四种好方法

0: native (naive)

cd + 补全来切换目录, 或者用通配符如 cd g*i 来切换目录. 这都是最原始的方法, 很累很费脑.

pushdpopd 来切换... 也很费脑子. 我是没有学会.

1. zsh

zsh 的 cd + 可以切换选择目录, 这是第一个优势 (oh-my-zsh 的功劳?). 还可以用 d 输出当前 shell 进过的目录, 然后通过数字选择进入:

$ d
0   ~/git/misc/knitr
1   ~/git/Basic-Single-Module-SSM/doc
2   /tmp

$ 0
$ pwd
~/git/misc/knitr

已经很友好, 不过这里只会是你前面 cd 过的文件夹. 退出当前 shell 后, 这些记录就没有了.

2. autojump

autojump 是另一个工具, 可以从你的 zsh_history 拿到你常入的文件夹, 通过 fuzzy 匹配来跳转, 比如:

$ j bff
/Users/zxtang/git/OTR-AS/service-bff

很方便就进入了 service-bff 文件夹. autojump 还提供 jo (open in Finder), jc (open child folder) 以及 jco (open child folder in Finder), 但实话说 jc / jco 可用性很差, 因为你要到相应的父目录才能用它跳转到子目录.

3. zsh-interactive-cd

zsh-interactive-cd: Fish like interactive tab completion for cd in zsh.

命令行下快速跳转目录的四种好方法_第1张图片
点我看录屏

可以一级一级地搜索过滤, 然后进入.

4. fzf

fzf: A command-line fuzzy finder.

fzf 可以搜索自己的 zsh_history (绑定在 C-r 上), 还可以输入当前文件夹下的文件 (绑定在 C-t 上), 还可以把过滤当前文件夹下所有的子目录, 选中并进入 (绑定在 M-c (或者 Escape c) 上).

这里是一个演示视频:

命令行下快速跳转目录的四种好方法_第2张图片
点我看录屏

fzf 的 wiki 里面还有各种跳转目录的 膜法, 如果你觉得 C-t 和 M-c 不够用, 可以一个个试试.


参考资料:

  • Quick directory navigation in the bash shell - Unix & Linux Stack Exchange
  • Examples · junegunn/fzf Wiki
  • 命令行上的 narrowing(随着输入逐步减少备选项)工具 - 巴蛮子 - 博客园

吐槽: 越来越捉急, 图片链接都不支持了?
就现在, 图片链接只能在 caption 上点, 图片上无效. 昨天都不是这样!

你可能感兴趣的:(命令行下快速跳转目录的四种好方法)