升級Shell工作環境

battle_field發表於2019-04-09

在工作中常會遇到程式設計師用著系統的 terminal 艱難的敲擊著 bash shell 的命令。這種原始的方式可能會導致工作效率降低。

對於終端的選擇,每個人的習慣不一樣,無法要求保持一致,但是我覺著,最基礎最常用的終端功能的配置,最好還是在團隊裡推廣一下,可以一定程度提高那些用著預設 terminal 的大神們的效率(PS: 聽說有些大神使用記事本寫程式碼,這類不在考慮之中)。但是這類配置又比較零散,所以趁著週末寫一個我自身常用的 Shell 工作環境的總結吧,本文以MacOS為例,對於Linux系統,在文章最後列舉了一些差異。本文適合想要提高一些終端使用效率的同學們。

iTerm2

安裝及配置

首先需要安裝 iTerm2,下載地址:iTerm2 Download,建議下載 Stable Release 版本。

安裝完成後,開啟 iTerm2 -> Preferences,就可以根據自己的使用習慣進行一些偏好設定了,由於可配置的選項太多,這裡不做一一列舉,只對我自己設定的一些選項進行簡單的介紹。(注意下載的不同版本的 iTerm2 的預設配置有可能有細微差別)

  1. 對於 General 選項卡,目前還沒遇到修改的需求。

  2. 對於 Appearence 選項卡,我改動了 Tabs 的一些設定,如下圖:

    Appearence.png

    • 將 "Tab bar location" 改為了 Top
    • 將 "Theme" 改為了 Light(可以根據個人習慣進行選擇)
  3. 改動較多的就是 Profiles 選項卡了,Profiles 主要是與顯示外觀有關的配置,在左側可以新建多個 profile 配置,這裡我只採用了 Default。

    每個 Profile 的右邊有多個配置選項:General、Colors、Text、Window、Terminal、Session、Keys、Advanced:

    • General:在下方有個 "Working Directory" 的配置,這個是當你每次開啟 shell 時預設進入的工作目錄,可以根據自己的工作習慣進行配置。由於我經常工作在 home 的 Work 目錄中,所以我勾選了 "Directory" 選項,並設定了 Work 目錄。

    • Colors:這個地方需要根據習慣自己調整配置。想想以後常用的 Shell 的樣子就是這裡決定的,還是值得花時間去根據自己喜好進行配置。由於我個人使用 Emacs 作為常用編輯器,而且 emacs 一直在用 Solarized light 主題,所以我再右下角的 "Color Presets" 裡面選擇了 "Solarized light" 主題。字型、背景顏色都可以在 Solarized light 的基礎上進行微調。

      此外,在 Colors 選項卡中,有個 "Cursor Guide" 選項,這個選項可以高亮當前游標所在行,更方便的找到游標位置,有需要的可以開啟。不過這裡有一個快捷鍵 "Command+/" 可以直接定位到游標位置,很好用,所以我沒有開啟 "Cursor Guide"。

    • Window:可以配置透明度、模糊效果和視窗大小等,看個人感受吧。

    • 其他配置沒有修改,所以這裡不再列舉了。

  4. Keys:繫結的一些快捷鍵,這裡我只新增了一個全域性的快捷鍵 "HotKey -> Show/Hide all windows with a system-wide hotkey",並設定為了 Command+Control+i。這樣在任何應用中,只要觸發了該快捷鍵,iTerm2 會立即回到第一視窗的位置,再次觸發會隱藏 iTerm2。

    此外提一個強烈些的建議:將 MacBook 上的 CapsLock 鍵位和左下角的 Control 鍵互換,互換方法在 "System Preferences -> Keyboard -> Keyboard -> Modifier Keys",仍不清楚的上網搜一下。這樣替換的好處是:

    • MacOS 上面的基本所有可編輯的地方,Control+f、Control+b 代表前進、後退一個字元,Control+k 表示刪除當前行游標位置之後的內容,Control+d表示刪除前面的字元。

    • 此外,MacOS 系統中絕大部分編輯器中還可以使用 Control+n、Control+p 來進行上一行下一行移動,例如 Xcode、Sublime Text、系統文字編輯器等。當然,如果你使用 Emacs,相信對這個鍵位的修改更沒有疑問了。

  5. Arrangements:這個暫時沒有用到。

  6. Pointer:滑鼠和手勢的一些操作,對此沒有關注,有興趣可自己看一下。

  7. Advanced:更多的可自定義配置,引數眾多,如果你想戒掉王者榮耀,可以嘗試將各個引數弄清楚(PS:意義不大,不建議這麼幹,還是玩王者吧)。

常用快捷鍵

iTerms 的有些快捷鍵不用掌握,因為後面章節會介紹更好用的工具。這裡只列舉了幾個常用操作。

  1. Shift+Command+h —> 用於彈出貼上歷史視窗。

  2. Command+f —> 當前 tab 中搜尋

  3. 按住 Command 鍵時有一些簡單的操作:

    • 可以拖拽選中的字串;
    • 點選 url —> 呼叫預設瀏覽器訪問該網址;
    • 點選檔案 —> 呼叫預設程式開啟檔案;如果檔名是 filename:42,且預設文字編輯器是 Macvim、Textmate 或 BBEdit,將會直接開啟到這一行;
    • 點選資料夾 —> 在 finder 中開啟該資料夾;
    • 同時按住 option 鍵,可以以矩形選中,類似於 vim 中的 ctrl v 操作。

Oh-my-zsh

oh-my-zsh 絕對是增強 shell 的一個神器,它提供了完整的外掛體系,可以根據工作需求選用不同的外掛。

安裝方法

  1. 通過 wget:

    sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
    複製程式碼
  2. 通過 curl:

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    複製程式碼

配置

關於 oh-my-zsh 的配置均在 $home 目錄下的 .zshrc 檔案中,如需修改配置可使用文字編輯器開啟編輯(如 emacs、vim 等),修改完成後重新登入 shell 或者執行 "source ~/.zshrc" 即可生效。

  1. 主題:

    開啟 .zshrc 檔案後,ZSH_THEME="robbyrussell" 這一行就是主題的配置,我採用了預設配置 robbyrussell。

    oh-my-zsh 的主題配置主要是一些提示字串格式、時間值、許可權、git 版本管理時顯示的格式等資訊。目前我還不清楚 oh-my-zsh 的主題對 iTerm2 的顯示外觀(背景色、字型等)有何影響,因為我換了幾個 ZSH_THEME 後只是提示字串等資訊的變化,沒有發現背景色、字型等外觀受到影響。如果有知道的,麻煩留個言,也讓我學習下。

  2. 外掛:

    開啟 .zshrc 檔案後,plugins=(git) 這一行是 oh-my-zsh 整合的外掛列表,我安裝的 oh-my-zsh 版本預設只使用了 git 外掛。我們可以在這個列表中新增 ~/.oh-my-zsh/plugins 目錄下 oh-my-zsh 已經提供的外掛。

    關於外掛,我使用了 git, zsh-syntax-highlighting, autojump 外掛,.zshrc 檔案配置為:

    plugins=(git
             zsh-syntax-highlighting
             autojump)
    複製程式碼
    • git: 有很方便的使用命令列 git 工具的快捷繫結,例如 git checkout master 可以直接使用 gco master,關於所有的快捷繫結,可以開啟 ~/.oh-my-zsh/plugins/git/git.plugin.zsh 檔案檢視所有的 alias。建議掌握幾個最常用的命令快捷繫結:gco/gst/gaa/gcmsg/glgg/gl/gp/gd/gba。

    • zsh-syntax-highlighting: 該外掛可以幫助我們再輸入命令時是否有誤。例如,我在命令列中只輸入 'v' 字元時,由於 shell 中沒有這個命令,所以這個 'v' 字元顯示為紅色,但是當我再輸入 'im' 後,'vim' 這幾個字元就變成了綠色,表示 shell 中有這個命令。該外掛並不是 oh-my-zsh 自帶的外掛,安裝方法見下文的“自定義外掛”。

    • autojump: 方便的跳轉到某個目錄,zsh 可以記錄已經訪問過的目錄,使用 autojump 可以輸入 "j 想要跳轉的目錄" 直接進入到目錄,autojump 也支援輸入 "j" 後再輸入目錄關鍵字元,使用 補全目錄。

    後續如果有新發現的好用的外掛,我也會更新該文件,方便參考。

  3. 自定義外掛:

    oh-my-zsh 包含一個完備的外掛體系,不只可以使用預設已打包的外掛,也可以使用自定義外掛:我們以 zsh-syntax-highlighting 外掛為例簡述一下如何為 oh-my-zsh 新增自定義的外掛。

    • 下載 zsh-syntax-highlighting 並解壓。
    • 將資料夾所有內容拷貝到 ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting 裡面。
    • 最後配置 ~/.zshrc 檔案的 plugins=(git zsh-syntax-highlighting)

    其他從網路上下載的外掛使用方法與 zsh-syntax-highlighting 類似,當然有能力也可以自己寫外掛。

  4. 關於 powerline

    相信很多人都看到過別人的 Shell 有如下圖這種樣式:

    powerline.png

    powerline 其實是一種增強提示資訊的展現方式,可以在 vim、emacs、shell 等多個場景下使用,之前也用過 powerline,但經過長期使用後,覺著 powerline 在 shell 中的優點並不明顯,所以目前我已經棄用了。如果有興趣,可按照:iTerm2 Oh-my-zsh 配置與 agnoster 主題配置 一文中的方法進行配置。

    有一點需要注意,在之前的印象中,如果需要使用 powerline,iTerm2 的背景色不能有透明度,記得是因為 powerline 的三角不支援透明。有興趣的可以驗證下,並留個言告訴我的記憶是否正確。

  5. 一些常用的快捷鍵:

    • "d" 目錄瀏覽和跳轉:輸入 d,就顯示在會話裡訪問的目錄列表,輸入列表前的序號,即可以跳轉,如下圖:

    d.png

    • 在 ~/.zshrc 最後一行加入:

      alias lm="ls -al"
      alias rm='trash'
      alias cl='clear'
      複製程式碼

      lm 是為了顯示當前目錄所有檔案(包含隱藏檔案),rm 關聯到 trash 是為了防止不小心使用了 "rm -rf xxx", cl 是清屏操作。

    • 常用快捷鍵會隨著我的使用體驗進行更新。

MacVim

安裝

使用 Homebrew 進行安裝:$ brew install MacVim

其實 MacOS 系統是自帶 Vim 編輯器的,但是由於系統自帶一般版本較低,所以這裡安裝一個 MacVim,其也有 GUI 可以用。

配置

我日常使用的編輯器是 Emacs,遺憾的是 Emacs 其實並不如 Vim 那麼的適合在終端使用,Vim 可以說是跟 Shell 聯絡最緊密的編輯器,所以掌握 Vim 的一些基礎操作還是必須的。

由於現在我從事 iOS 開發工作,使用 Shell 的只是處理一些日常工作,並不會使用其進行程式碼編寫。所以掌握 Vim 的一些基礎操作就足夠了。這一部分 Vim 黨請略過,不過我相信 Vim 黨也基本都已經有自己的完整的 shell 配置。

這裡推薦 github 上一個 star 比較多的 vim 配置:k-vim。 安裝過程在 github 中有詳細文件,這裡就不再贅述。我對 k-vim 的某些預設配置進行了修改:

  • $home/.vimrc 中的 "set background=dark",我改成了 light(因為我的 iTerm 配置的 light 主題)。

  • 231 行到 244 行與 relativenumber 有關的都被我註釋掉了,因為我不太習慣相對行號。

此外,在 Shell 中使用 MacVim 要使用 "mvim -v" 命令,為了方便在 Shell 中使用 MacVim,在 ~/.zshrc 最後為 "mvim -v" 命令新增一個別名:

alias vim="mvim -v"
複製程式碼

使用

上面提到我目前常用編輯器是 Emacs,但是我的 Emacs(Spacemacs) 使用的是 vim 快捷鍵,因為 vim 的快捷鍵確實非常通用,而且效率高。(PS: 使用 Xcode 的能夠發現,Xcode 的快捷鍵其實更像 Emacs) Vim 的一些基礎操作還是希望儘量能夠掌握,例如 Vim 的集中模式,hjkl、e、b、0、$、dd、:w、:wq、:q、i、Esc、Control+[、o、O、v 等。

本文不是一篇 Vim 的介紹和教程,這裡提到 Vim 只是為了能夠在 Shell 中方便的編輯檔案。如果不是專門使用 Vim 寫程式碼,掌握基礎技能就夠用了(例如簡單修改一個檔案)。 如果希望能有一個自己順手的長期使用的編輯器,建議可以深入學習下 Vim,當然 Emacs 也是不錯的選擇。(我習慣於 Emacs,一方面是由於熟悉 Scheme 語言,與Emacs Lisp 同屬 Lisp 語言,能夠自定義配置和編寫外掛,另外 Spacemacs 的出現降低了 Emacs 的學習成本,有興趣可以嘗試)。

Tmux

什麼是 Tmux?

Tmux 是一個終端複用軟體,BSD 協議釋出。一般用於在一個命令列視窗中訪問多個命令列會話,或者在一個命令列終端中同時使用多個程式。

你是否曾經開過一大堆的 Terminal?有沒有把它們都儲存下來的衝動?Tmux 的 Session 就是做這件事情的。只要沒有關機,即使 iTerm/Terminal/Konsole 意外關閉也沒關係,Session 可以完全恢復。即使關機了其實也可以恢復,但是要配置,因為我的Mac關機很少,而且日常工作很少有連線伺服器的需求,所以沒有這類需求。

Tmux 讓我們可以隨時退出或者進入任何一個 Session。每個 Session 有若干個 Window,每個 Window 又可以分成多個窗格(Pane)。有了 Session 的概念, Tmux 就可以隔離工作環境,比如為處理第一項工作相關的會話建立一個work0,為處理第二項工作的會話建立一個 work1,為個人 hack 建立一個personalhack,然後我們就可以通過 session 的切換來切換我們的工作環境,我們可以就置身於單個工作環境了,達到了工作環境隔離的效果。這個功能嘗試使用一下會有驚喜。

Tmux 是本文的重點介紹內容。

安裝

brew install tmux
複製程式碼

基本使用方法

  1. tmux 中常用的有四個概念:

    • server:伺服器。輸入 tmux 命令時就開啟了一個伺服器。
    • session:會話。一個伺服器可以包含多個會話。
    • window:視窗。一個會話可以包含多個視窗。
    • pane:皮膚。一個視窗可以包含多個皮膚。
  2. tmux 中的快捷鍵操作由一個 prefix 開啟,即按下 prefix 鍵位後,鬆開,再去按另一個快捷鍵。預設的 prefix 鍵位是 Control+b,考慮到下面兩個原因,我將其改為了 Control+空格。

    • Control+b 按起來並不順手,而且 Mac OSX 系統中,Control+b 通常代表返回到上一個字元位置,如果使用 Control+b 作為 prefix,如果需要返回到上一個字元位置,則需要按兩次 Control+b。

    • 網上大部分教程提示將 Control+b 修改為 Control+a,但是由於 Control+a 在 MacOSX 中表示回到當前行的起始位置,如果使用 Control+a 作為 prefix,我們需要按兩次 Control+a 才能回到行首,也不太方便。所以我這裡修改為了 Control+Space。

    配置方法:在 ~/.tmux.conf 檔案(如果沒有需要自己建立)中加入下面語句:

    #設定字首為 Ctrl + Space
    set -g prefix C-Space
    #解除 Ctrl+b 與字首的對應關係
    unbind C-b
    複製程式碼
  3. tmux 會話(session)操作

    • 開啟會話:在 iTerm2 Shell 中輸入"tmux"後,就進入了一個新的 tmux 會話。
    • 脫離當前會話:"prefix+d",這時會回到 Shell 中。
    • 脫離指定會話:"prefix+D"
    • 切換會話:"prefix+s",當有多個會話時,使用這個功能切換工作環境非常有用。
    • 修改會話名字:"prefix+$"
    • 進入命令列模式:"prefix+:",此時可輸入支援的命令,例如 kill-server 關閉所有 tmux 會話, kill-session 關閉當前會話。
    • 掛起會話:"prefix+C-z"
  4. tmux 視窗(window)操作

    tmux 中的一個會話可以有多個視窗,各個視窗可以互不影響。

    • 每次開啟一個會話會預設建立一個視窗
    • 建立新視窗:"prefix+c"
    • 關閉當前視窗:"prefix+&"
    • 切換到指定數字視窗:"prefix+數字鍵 0-9"
    • 切換到上一個視窗:"prefix+p"
    • 切換到下一個視窗:"prefix+n"
    • 通過視窗列表切換視窗:"prefix+w"
    • 重新命名視窗:"prefix+,"
    • 修改當前視窗編號,相當於重新排序:"prefix+."
    • 在所有視窗中查詢關鍵詞:"prefix+f"
  5. tmux 皮膚(pane)操作

    tmux 中的每個視窗都可以開啟多個皮膚,一個視窗的皮膚會同時展示在視窗中。下面是一些常用操作,在下一節介紹了 tmux 外掛後會使操作更方便。

    • 關閉當前分屏:"prefix+x"
    • 顯示皮膚編號:"prefix+q"
    • 最大化當前所在皮膚:"prefix+z",再次使用會復原當前皮膚大小。
    • 將當前皮膚上下分屏:"prefix+""
    • 將當前皮膚左右分屏:"prefix+%"
    • 選擇當前視窗中下一個皮膚:"prefix+o"
    • 置換皮膚位置:"prefix+{" or "prefix+}" or "prefix+C-o" or "prefix+M-o"

常用配置:

  1. 修改 prefix 按鍵:上面已經介紹過了。

  2. 開啟滑鼠操作:

    #開啟滑鼠操作
    set -g mouse on
    複製程式碼

    開啟滑鼠操作可以使用滑鼠切換皮膚,並且一個比較使用的功能 copy/paste 功能:

    按住 alt 鍵(Option鍵),按住滑鼠左鍵,移動滑鼠以選中部分文字,鬆開滑鼠左鍵後,選中的文字就複製到了系統的剪下板,可以在其他應用中貼上。

    此外,如果在鬆開滑鼠左鍵後,點選滑鼠中鍵(不要放開 alt 鍵),則選中的文字會自動貼上到當前皮膚中的輸入處,同時,系統剪下板也是可以用的。

  3. 重新載入 tmux 配置快捷鍵:

    #在 tmux 中使用 prefix + r 重新載入配置
    bind r source-file ~/.tmux.conf \; display-message "Config reloaded"
    複製程式碼

    修改完成後,可以使用 "prefix+:" 進入命令列模式,然後使用 "source ~/.tmux.conf" 生效新的配置,之後再次生效新配置就可以直接使用 "prefix+r" 快捷繫結了。

  4. 修改皮膚和視窗起始編號(預設均為 0):

    #視窗和皮膚的起始編號為 1
    set -g base-index 1
    setw -g pane-base-index 1
    複製程式碼
  5. 啟用 256 色(這個應該預設就是支援的):

    #使 tmux 顯示 256 色
    set -g default-terminal "screen-256color"
    複製程式碼
  6. 安裝 TPM(Tmux Plugin Manager):

    • clone TPM 專案:

      git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
      複製程式碼
    • ~/.tmux.conf 底部新增:

      # List of plugins
      set -g @plugin 'tmux-plugins/tpm'
      set -g @plugin 'tmux-plugins/tmux-sensible'
      
      # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
      run '~/.tmux/plugins/tpm/tpm'
      複製程式碼
    • 過載 tmux 配置檔案

  7. 使用 TPM 安裝外掛的方法:

    • 新增 .tmux.conf 檔案中類似 set -g @plugin '…'這樣的行,新增你想要的外掛
    • 在 tmux 環境中使用 "prefix+I" 安裝外掛(ls ~/.tmux/plugins/可以看到抓下來的外掛)
    • 如果要升級所有外掛,敲 "prefix+U"
    • 如果要幹掉某個外掛,先從~/.tmux.conf 中刪掉對應的行,然後 "prefix+alt+u"。
  8. 外掛:tmux-pain-control

    該外掛提供了一些便利的 pane 操作:

    • 豎直分隔皮膚:"prefix+|"
    • 水平分隔皮膚:"prefix+-"
    • 跳轉到左邊的皮膚:"prefix+h" or "prefix+C-h"
    • 跳轉到上面的皮膚:"prefix+k" or "prefix+C-k"
    • 跳轉到下面的皮膚:"prefix+j" or "prefix+C-j"
    • 跳轉到右邊的皮膚:"prefix+l" or "prefix+C-l"
  9. 外掛:tmux-prefix-highlight

    安裝該外掛後,每次點選了 prefix 按鍵後,底部的狀態列會顯示一個狀態,詳細請參考其 github 說明文件。之因為我安裝了這個,是因為有時候命令不起作用時,我可以清晰看到是不是 prefix 沒有成功觸發。

  10. 複製貼上:

    首先安裝一個 tmux 外掛 tmux-yank ,該外掛可以讓 tmux 複製和貼上系統剪下板。安裝說明請參考專案的 README 說明。

    在 ~/.tmux.conf 檔案中新增一下程式碼(我的 tmux 版本是 2.5,如果是以前的版本,命令可能不一樣):

    #複製操作
    set-window-option -g mode-keys vi
    bind-key -T copy-mode-vi 'v' send-keys -X begin-selection
    bind-key -T copy-mode-vi 'V' send-keys -X select-line
    bind-key -T copy-mode-vi 'r' send-keys -X rectangle-toggle
    bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
    複製程式碼

    在 tmux 會話中,使用 "prefix+r" 重新載入 ~/.tmux.conf,然後我們可以做如下操作:

    "prefix+[" 進入 tmux 複製模式,使用 vim 快捷鍵移動游標到需要複製的文字起始位置,點選 "v" 開始複製,繼續使用 vim 快捷鍵移動游標到需要複製的文字末尾位置,按下 "y" 後,退出 tmux 複製模式,並且複製了已選文字,這時,使用 "Command+v" 就可以將已複製文字貼上了。並且,在其他應用也是可以使用 "Command+v" 進行貼上的。

fzf

fzf 提供命令列中的模糊搜尋,絕對算得上是 shell 的一個大殺器,誰用誰知道。安裝方法可參考 github README,使用 homebrew 安裝非常簡單。

fzf 提供對 tmux 和 vim 的支援,所以與本文所述的環境結合度非常高。下面看一下我經常用到的功能:

  1. 在 tmux 中搜尋檔案和目錄:

    只需按下快捷鍵 Control+t 即可(不需要 tmux 中的 prefix 鍵),就會在當前的視窗中出現一個互動式的輸入行,下方是搜尋本目錄的子目錄和檔案匹配到的結果,如下圖:

    fzf0.png

    可以使用 Control+n 和 Control+p 上下選擇搜尋結果,點選 Enter 會將該行內容輸入到 tmux 的命令輸入行中,使用 Control+g 退出 fzf 搜尋模式。fzf 的搜尋是模糊搜尋,非常方便,另外可以看到 Control 鍵是非常的常用,這也是上面建議將鍵盤左下角的 Control 和 Capslock 鍵互換的原因。

  2. 在 tmux 中索索歷史命令:

    使用快捷鍵 Control+r (不需要 tmux 中的 prefix 鍵)。效果同上,只不過彈出的列表是歷史命令。不再詳述。

  3. 支援部分 shell 命令的引數補全:

    • 輸入:kill -9 ** 就會出現一個程式列表,輸入程式 ID 即可殺死指定程式。
    • 輸入:vim ** 會出現一個當前目錄下面檔案的列表,可以輸入檔名進行匹配。
    • 還有一些其他命令,參考下 fzf 的說明文件吧,我常用的就這幾種。

配置檔案的管理

上面介紹的幾個工具涉及到了多個配置檔案,為了統一管理配置檔案,建議集中管理並引入 git 進行版本控制。

vim 的配置檔案是 ~/.vimrc,zsh 的配置檔案是 ~/.zshrc,tmux 的配置檔案是 ~/.tmux.conf,fzf 的配置檔案 ~/.fzf.zsh。這裡將幾個檔案放入到 ~/Dotfiles/ 目錄中,併為該目錄引入 git 版本控制,然後在 $home 目錄下為三個檔案建立與檔案相同名字的符號連結。最後,直接修改由 git 管理的 Dotfiles 中的檔案即可。

總結

本文中介紹的 iTerm2 和 MacVim 應該是隻適用於 MacOS,對於 Linux 系統可以採用系統終端,然後安裝 zsh,vim(有的系統只有vi,而沒有vim,需要安裝)。其餘的例如 oh-my-zsh,tmux,fzf等功能,Linux 也是可以使用的。

最後再推薦一個工具 Moom ,用著非常舒服,尤其是在膝上型電腦這種螢幕大小有限的環境下。具體使用方法這裡就不介紹了,請參考 OS X 是了不起的作業系統:視窗控制應用 Moom 體驗詳解

關於 Shell 環境的配置先介紹這麼多,有更好用的外掛或配置我會更新上來。一眼看過去貌似命令比較多,不過個人覺著這些命令都不需要死記硬背,只要你堅持用上兩週,我想基本能記個差不多了吧。經過我長期使用的體驗,iTerm2、zsh、oh-my-zsh、vim 和 Tmux 的組合確實能夠有效提高工作效率。

希望所有程式設計師都能掌握一部分命令列的操作,並且有一個自己用的習慣的 Shell 環境。

參考文件

  1. iTerm2 Oh-my-zsh 配置與 agnoster 主題配置
  2. The Text Triumvirate
  3. 優雅地使用命令列:Tmux 終端複用
  4. 終極 Shell
  5. A tmux Crash Course
  6. 關於 Zsh,我最喜歡的那些特性
  7. Tmux 快捷鍵速查表
  8. tmux 配置指南

相關文章