0: native (naive)
用 cd
+ <TAB>
補全來切換目錄, 或者用通配符如 cd g*i
來切換目錄. 這都是最原始的方法, 很累很費腦.
用 pushd
和 popd
來切換... 也很費腦子. 我是沒有學會.
1. zsh
zsh 的 cd
+ <TAB>
可以切換選擇目錄, 這是第一個優(yōu)勢 (oh-my-zsh 的功勞?). 還可以用 d
輸出當前 shell 進過的目錄, 然后通過數(shù)字選擇進入:
$ d
0 ~/git/misc/knitr
1 ~/git/Basic-Single-Module-SSM/doc
2 /tmp
$ 0
$ pwd
~/git/misc/knitr
已經(jīng)很友好, 不過這里只會是你前面 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.
可以一級一級地搜索過濾, 然后進入.
4. fzf
fzf: A command-line fuzzy finder.
fzf 可以搜索自己的 zsh_history (綁定在 C-r 上), 還可以輸入當前文件夾下的文件 (綁定在 C-t 上), 還可以把過濾當前文件夾下所有的子目錄, 選中并進入 (綁定在 M-c (或者 Escape c) 上).
fzf 的 wiki 里面還有各種跳轉目錄的 膜法, 如果你覺得 C-t 和 M-c 不夠用, 可以一個個試試.
參考資料:
- Quick directory navigation in the bash shell - Unix & Linux Stack Exchange
- Examples · junegunn/fzf Wiki
- 命令行上的 narrowing(隨著輸入逐步減少備選項)工具 - 巴蠻子 - 博客園
吐槽: 簡書越來越捉急, 圖片鏈接都不支持了?
就現(xiàn)在, 圖片鏈接只能在 caption 上點, 圖片上無效. 昨天都不是這樣!