oh-my-zsh小記

入坑前言

其實一開始讓我轉zsh我是拒絕的,由於OS X默認的bash相對來講已經至關強大了,可是受不了oh-my-zsh誘人的界面,因而今天就花時間裝上體驗了一把,再而後就是我來這裏安利了???git

安裝

首先須要安裝zsh,若是不肯定有沒有,能夠經過終端命令:github

cat /etc/shells

查看,個人結果以下:shell

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

沒有的就須要安裝了。vim

  • OS X用戶:睾貴的自帶了zsh,跳過...windows

  • Ubuntu用戶:sudo apt-get install zshbash

  • Windows用戶:因爲天生過高貴,沒法安裝,請關閉當前頁面...???請轉至評論區,藉助Cygwin能夠實現(3月31日更新,據Windows開發者大會前線消息,Windows推出了bash for windows,Windows用戶們喜大普奔吧!!!)dom

傳說zsh配置極其複雜,起初並無多少人用,後來有個程序猿在GitHub開源了一個oh-my-zsh項目,而後就...zsh大法好,果真程序猿改變世界!!!curl


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了。this

個性化配置

我以前一直使用的是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


以上就是使用了一天的成果了,期待有更多更好玩的發現!
最後講一句,開源大法好!!!開源大法好!!!開源大法好!!!

相關文章
相關標籤/搜索