Edited at

Macの開発環境をzshで良い感じにする

このエントリーでは、Macの開発環境をzshで良い感じにする記事です

今年からシステムエンジニアからWebエンジニアへキャリアチェンジし、今まで使ってきた開発環境がガッツリ変わりました。

今回は、同僚や記事を参考にして自分なりに設定した開発環境の設定をご紹介します

この記事はまだ荒削りな内容のため近いうちに内容を修正追加する予定です🙇


環境

macOS Sierra 10.12.6


コマンドラインツールのインストール(アップデート)

まずは、AppストアからXcodeをインストールをしてください

インストール後、下記のコマンドを実行しコマンドラインツールのインストールをしましょう

$ xcode-select --install


homebrewのインストール

公式ページを確認の上、以下を実行

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


gitのインストール

この記事ではgitのコマンドを多用するためgitをインストールします

$ brew install git


zshのインストール


zshをインストールする

$ brew install zsh


ログインシェルの変更する

$vi /etc/shellsでviを立ち上げて一番下の行に/usr/local/bin/zsh(Homebrewでインストールしたzshのパス)を追加する


/etc/shells

+ /usr/local/bin/zsh


$ chsh -s /usr/local/bin/zshでシェルを変更する


preztoをインストールする

zshを設定するフレームワークとしてoh-my-zshが有名ですが、今回は軽量であるpreztoをインストールします

公式の通り以下を実行

git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

※すでに、zshの設定ファイルがある場合はねんのため退避させておきましょう

$mkdir ~/zsh_backup

$mv .zlogin .zlogout .zprofile .zshenv .zshrc ~/zsh_backup

zshの設定ファイルを作成します

setopt EXTENDED_GLOB

for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done


デフォルトで立ち上げあがるエディタをvimに変更する

このままの設定だとgit mergeした時になどに立ち上がるエディタがnanoというエディタが立ち上がります。

そのため、vimが立ち上がるように修正します


~/.zprofile


#
# Editors
#

- export EDITOR='nano'
+ export EDITOR='vim'
- export VISUAL='nano'
+ export VISUAL='vim'
export PAGER='less'



テーマを適用する

今回は試しにこちらのテーマを適用します


~/.zpreztorc

+ zstyle ':prezto:module:prompt' theme 'agnoster'



zsh-completions

zshの補完を強化するためにzsh-completionsをインストールします

https://github.com/zsh-users/zsh-completions

公式の通り以下を実行する


インストール

$ brew install zsh-completions


.zshrcに設定を追加


~/.zshrc

+ fpath=(path/to/zsh-completions/src $fpath)


zcompdumpをリビルドする

$ rm -f ~/.zcompdump; compinit


peco

ターミナルで今まで実行したコマンドの履歴を呼び出せるようにするためにpecoをインストールします

https://github.com/peco/peco


インストール

$ brew install peco


設定

ctrl+rで呼び出せるようにするのと同じコマンドを重複して表示させないように設定します


~/.zshrc

+ #peco

+ function peco-history-selection() {
+ BUFFER=$(history 1 | sort -k1,1nr | perl -ne 'BEGIN { my @lines = (); } s/^\s*\d+\*?\s*//; $in=$_; if (!(grep {$in eq $_} @lines)) { push(@lines, $in); print $in; }' | peco --query "$LBUFFER")
+ CURSOR=${#BUFFER}
+ zle reset-prompt
+ }
+ zle -N peco-history-selection
+ bindkey '^R' peco-history-selection


ghq

ghqは予め設定したルートリポジトリにgit cloneをしたり、リポジトリの一覧を表示するなどの管理ができるツールです

https://github.com/motemen/ghq


インストール

$ brew install ghq


ルートリポジトリの設定


~/.gitconfig

+[ghq]

+ root = ~/設定したいディレクトリ

こうすることで、~/設定したいディレクトリへ移動しなくてもghq get リモートリポジトリURLで予め設定したルートリポジトリにリポジトリがクローンされます


tmux

端末多重化ソフトウェアと呼ばれるもので、これを入れると複数ウィンドウでのターミナル操作が便利になります


インストール

$ brew install tmux


.tmux.confの設定

tmuxのインストールが終わった後は自分のホームディレクトリ(~/)直下に.tmux.confという設定ファイルを作成し、設定を記入していきます

設定は以下の記事を参考にprefixキーをC-aに変更するC-q(Ctrl+q)に変更したものを利用しております

達人に学ぶ.tmux.confの基本設定 - Qiita


~/.tmux.conf

- # prefixキーをC-aに変更する

+ # prefixキーをC-qに変更する
- set -g prefix C-a
+ set -g prefix C-q


使い方

まずは普通にターミナルを立ち上げます。その後にtmuxコマンドを実行し、tmuxを立ち上げます。

すると以下のような画面になると思います。


ペイン(領域)分割

tmuxを立ち上げた状態ででprefixキー(今回の場合、Ctrl+q)を押した後に、|(パイプ)キーを押すと縦の方向で別の領域を立ち上げることができます。

(※prefixキーを押しながらではありません)

さらにprefixキーを押した後に"(ダブルコーテーション)キーを押すと横の方向で別の領域を立ち上げることができます。

結果として以下のように1つのウィンドウで3つの領域に分割することができました。

今まではターミナルのウィンドウやタブを複数立ち上げていましたが、キレイに分割されて大分見やすく、便利になりましたね。


ペイン移動

各ペインの移動はprefixキーを押した後に方向キーを押すか、各ペインに対してマウスクリックをすれば移動ができます。

他にも色々なコマンドがあるので調べてみてください。


以上となります。

今度はこれをスクリプト化したいですね。

そちらは別の機会に書こうと思います。


参考記事

https://dev.classmethod.jp/tool/zsh-prezto/

https://qiita.com/shepabashi/items/f2bc2be37a31df49bca5

https://qiita.com/succi0303/items/cb396704493476373edf