文章出處

入坑前言

其實一開始讓我轉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


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


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()