入坑前言
其實一開始讓我轉zsh
我是拒絕的,因為OS X默認的bash
相對來說已經相當強大了,但是受不了oh-my-zsh
誘人的界面,于是今天就花時間裝上體驗了一把,再然后就是我來這里安利了😏😏😏
安裝
首先需要安裝zsh
,如果不確定有沒有,可以通過終端命令:
cat /etc/shells
查看,我的結果如下:
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
沒有的就需要安裝了。
-
OS X用戶:睪貴的自帶了
zsh
,跳過... -
Ubuntu用戶:sudo apt-get install zsh
-
Windows用戶:
由于天生太高貴,無法安裝,請關閉當前頁面...😂😂😂請轉至評論區,借助Cygwin可以實現(3月31日更新,據Windows開發者大會前線消息,Windows推出了bash for windows,Windows用戶們喜大普奔吧!!!)
傳說zsh
配置極其復雜,起初并沒有多少人用,后來有個程序猿在GitHub開源了一個oh-my-zsh項目,然后就...zsh
大法好,果然程序猿改變世界!!!
oh-my-zsh
有兩種安裝方式:
# via wget
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
# via curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
安裝完成后重啟終端就OK了。
個性化配置
我之前一直使用的是bash
,有部分配置保存在相應的配置文件中,我的是在~/.bash_profile
中,使用vim ~/.bash_profile
進入編輯模式,把里面的個人配置拷貝出來粘貼到~/.zshrc
的末尾即可。
oh-my-zsh
最直觀和bash
不一樣的地方要數它豐富的主題了,也是一開始吸引我使用它的地方。不過在配置主題之前最好先保證系統有豐富的字體,因為部分主題依賴于這些字體,按照說明安裝即可,安裝完成后在shell
偏好設置里面選擇,我使用的是Meslo for Powerline
系列。
切換主題只需要編輯~/.zshrc
文件,找到下面這段文本:
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="random"
我自己配置的是隨機random
,自帶的主題在~/.oh-my-zsh/themes
里面,想用哪個就把相應的名字替換進去就可以了,這是一些自帶主題的截圖⇒我帶你去看。有可能你不滿足于這些,沒關系,還有擴展主題,每個主題都有詳細的配置方法,照做就OK了。
oh-my-zsh
另外一個強大的地方是插件,自帶插件在~/.oh-my-zsh/plugins
目錄下,想了解各個插件的功能和使用方法,閱讀各個插件目錄下的*.plugin.zsh
就可以了,比如在終端中輸入vim ~/.oh-my-zsh/plugins/git/git.plugin.zsh
,你可以看到:
# Query/use custom command for `git`.
zstyle -s ":vcs_info:git:*:-all-" "command" _omz_git_git_cmd
: ${_omz_git_git_cmd:=git}
#
# Functions
#
...
alias g='git'
alias ga='git add'
alias gaa='git add --all'
alias gapa='git add --patch'
...
貼心好用到哭有木有😭😭😭
除了自帶插件外,還有一大票擴展插件,我目前只安裝了一個zsh-completions。安裝方式很簡單,把插件用git
命令克隆到~/.oh-my-zsh/custom/plugins
,然后在配置文件中按插件說明配置保存、重啟就可以了。
有些插件在按照說明安裝使用后會報類似于如下的錯誤:
_arguments:450: _vim_files: function definition file not found
我的解決辦法是,直接刪除~/.zcompdump
文件,但是不知道會不會影響其他插件的功能。
使用心得
舉個栗子🌰,之前偶爾需要用到刪除文件夾的操作,rm -r [path]
,但是常常會忘記中間的參數是什么,現在我只需要這么做:
# 輸入 rm - , 然后按tab
rm -
-R -r -- remove directories and their contents recursively
-f -- ignore nonexistent files, never prompt
-i -- prompt before every removal
對于這種低頻的操作來說非常方便,不需要再使用man
來查詢。
另一個我很喜歡的地方就是當處于Git版本控制
目錄下時,有非常貼心的版本相關信息,包括當前所在分支,本地代碼提交情況等(SVN
好像沒有這個功能,不知是我姿勢不對還是可以通過其他插件得以實現相似功能),同時對Git
精簡了很多命令。
還有,cd
敲太多是不是煩了?在oh-my-zsh
中進入某個路徑不需要帶cd
。
以上就是使用了一天的成果了,期待有更多更好玩的發現!
最后講一句,開源大法好!!!開源大法好!!!開源大法好!!!
文章列表