其實我已經用了 fish shell 快半年了,由於被一些兼容性問題搞煩了,因此最近又用回了 zsh + oh-my-zsh。git
zsh + oh-my-zsh 配合是真心好用,並且 oh-my-zsh 還偷偷幹了不少人不知道的事,好比 rake task也能補全,第一次見到時真是有點驚訝。好吧,下面說一說我但願一開始就知道的。github
其實我用了 oh-my-zsh 快三個月後才知道原來他自帶了不少插件沒有開啓。。。shell
如何開啓?找到 ~/.zshrc
有一行 plugins=(git)
,想加什麼插件就把名字放裏面就是了,好比plugins=(rails git ruby)
就開啓了rails
,git
和 ruby
三個插件。瀏覽器
更多插件請進入 ~/.oh-my-zsh/plugins
文件夾探索,也能夠看看 wiki 裏的 Plugins Overview,每一個人的需求不同,裏面有一些比較神奇的插件,好比敲兩下esc
它會給你自動加上 sudo
的 sudo 插件,讓複製顯示進度條的cp
插件,解壓用的 extract
插件(有沒有以爲在命令行下敲一大堆選項才能解壓有點奇怪?),vi 粉的vi-mode
等等...ruby
嗯,這也是個自帶的可是沒有開啓的插件。爲何單獨把它拿出來說呢?由於太好用了,沒有它我根本就不想用命令行。簡直就是能夠無腦跳躍,好比你常常進入~/Documents
目錄,按下 z doc
通常它就能夠跳進去了(固然首先你得用一段時間讓它積累一下數據才能用)。相似的插件還有好幾個好比autojump
,fasd
,這類東西好像叫 FS Jumping
,這裏有個完整列表:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins-Overview#fs-jumping插件
在 fish shell 裏你能夠按alt
加左右箭頭隨意穿梭於歷史記錄中,就像 GUI 文件瀏覽器的
前進,後退。zsh 沒有這麼好用,可是按一下 d
再回車你會看到最近的歷史記錄,而後你就能夠經過數字好比 1
, 2
之類的返回到某個歷史記錄中了。也是很是好用的。命令行
官方的介紹是Fish-like fast/unobtrusive autosuggestions for zsh
,沒錯,這是模仿fish shell 的一個插件,做用基本上就是根據歷史記錄即時提示。沒有這個東西讓我感受本身很盲目。沒有用過 fish 的同窗可能以爲它有點奇怪,可是一旦適應它之後就會發現它會大幅度的提升效率(按 ctrl+E 是正確姿式)。注意:它不是 oh-my-zsh 自帶的,你們能夠去 github 看它的安裝說明。code
git 插件是默認開啓的,你們可能注意到它可以自動補全以及顯示所在 branch。對於一個 git 重度用戶,一些 aliases 是不可缺乏的。相信我,一旦習慣了 aliases,就會以爲原來敲那麼一大堆命令真是不能忍了(即便它可以自動補全)。下面列一些我最經常使用的(固然也是 oh-my-zsh 自帶的,更多請看 wiki):ip
Alias | Command |
---|---|
g | git |
gst | git status |
ga | git add |
gp | git push |
gc | git commit -v |
gc! | git commit -v --amend |
敲 zsh_stats
能夠看到你的使用頻率前 20 的命令是什麼!get
take
看看 which take
就知道它有什麼用了
clipcopy
和 clippaste
,剪貼板和命令行的交互
官方 wiki 上面給出了不少有用的功能介紹,好比一些 aliases,像...
, ....
, take
等等。
若是完整的看完了 wiki 的話我前面的介紹都是廢話了。
推薦一個不相關的:trash-cli,就是命令行版的回收站,它的神奇之處在於不是簡單的把文件移動到回收站,並且能夠在回收站裏恢復。因此它說本身是Command line interface to the freedesktop.org trashcan
,個人 zshrc 裏有一行:alias rt="trash"
其餘的一些很是有用的 tips 想到再補充。
補上個人配置文件們:https://github.com/dd1994/dotfiles