このエントリーでは、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のパス)を追加する
+ /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が立ち上がるように修正します
#
# Editors
#
- export EDITOR='nano'
+ export EDITOR='vim'
- export VISUAL='nano'
+ export VISUAL='vim'
export PAGER='less'
テーマを適用する
今回は試しにこちらのテーマを適用します
+ zstyle ':prezto:module:prompt' theme 'agnoster'
zsh-completions
zshの補完を強化するためにzsh-completionsをインストールします
https://github.com/zsh-users/zsh-completions
公式の通り以下を実行する
インストール
$ brew install zsh-completions
.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で呼び出せるようにするのと同じコマンドを重複して表示させないように設定します
+ #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
ルートリポジトリの設定
+[ghq]
+ root = ~/設定したいディレクトリ
こうすることで、~/設定したいディレクトリ
へ移動しなくてもghq get リモートリポジトリURL
で予め設定したルートリポジトリにリポジトリがクローンされます
tmux
端末多重化ソフトウェアと呼ばれるもので、これを入れると複数ウィンドウでのターミナル操作が便利になります
インストール
$ brew install tmux
.tmux.confの設定
tmuxのインストールが終わった後は自分のホームディレクトリ(~/
)直下に.tmux.conf
という設定ファイルを作成し、設定を記入していきます
設定は以下の記事を参考にprefixキーをC-aに変更する
をC-q(Ctrl+q)
に変更したものを利用しております
達人に学ぶ.tmux.confの基本設定 - Qiita
- # 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