terminal環境構築メモ (iTerm2 + fish)


はじめに

私の普段利用しているterminal環境の構築備忘録です。

環境

macOS Catalina version 10.15.5

Homebrew 導入

Macのパッケージ管理ソフトです。これを入れなきゃ始まらない。
https://brew.sh/index_ja

公式に従い、以下でインストール

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

git 導入

$ brew install git

このとき、 以下の場所ば参照されればOK

$ which git
/usr/local/bin/git

されなければこのあたりを参考にパスを通す。
https://yumegori.com/mac-git-install20191121

# パスの追加
$ echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile
# 反映
$ source ~/.bash_profile

iTerm2 導入

Mac標準のTerminalの強化版です。

以下より、zipをダウンロードする。
https://www.iterm2.com/index.html
解凍すると iTerm.app が出てくるのでApplicationsディレクトリに移してインストール完了

設定

素早く呼び出せるようにHotkeyを設定。

このとき、Accessibilityの許可を行う。

透過度を適当に設定しておく。
ちなみに透過/不透過は cmd + u で切り替えられる

デフォルトだと Blue が見づらいので変更する。色はお好みで。

Powerline Fonts のインストール

後でfishを使うときに文字化けすることがあるため入れておく。
https://github.com/powerline/fonts

インストール

# clone
$ git clone https://github.com/powerline/fonts.git --depth=1

# install
$ cd fonts
$ ./install.sh

# clean-up a bit
$ cd ..
$ rm -rf fonts

フォントを Roboto Mono for Powerline に変更

vim 設定

カラースキーマはこちらを使う
https://github.com/tomasr/molokai

# .vim ディレクトリを作成
$ mkdir ~/.vim

# 任意の場所にクローンして、 ~/.vim 配下にコピー
$ git clone https://github.com/tomasr/molokai.git
$ cp -r molokai/colors ~/.vim

.vimrc を修正

$ vi ~/.vimrc
" 表示設定
set number " 行番号を表示
set laststatus=2 " ステータスバー表示

" 操作設定
set virtualedit=onemore " 行末の1文字先までカーソルを移動できるように
set backspace=2 " backspaceの有効化

" インデント設定
set smartindent
set noautoindent

" タブキー設定
set smarttab
set expandtab

" 検索設定
set hlsearch " ハイライト
set ignorecase "大文字/小文字の区別なく検索する
set smartcase "検索文字列に大文字が含まれている場合は区別して検索する

" シンタックスハイライト
filetype on
syntax on
colorscheme molokai
set t_Co=256

fish 導入

bash, zsh より凄いと噂のshell
https://fishshell.com/

まずはインストール

$ brew install fish

デフォルトshellをfishに変更

# fishのインストール先を確認
$ which fish
/usr/local/bin/fish

# 末尾に /usr/local/bin/fish を追加
$ sudo vi /etc/shells

# デフォルト shell を fish に変更
$ chsh -s /usr/local/bin/fish

# iTermを再起動

設定

以下を実行するとブラウザで設定画面が出てくる。

$ fish_config


好きなテーマを選んで Theme Set ! を押す

alias 設定

git 関連のコマンドを alias に登録。このへんもお好みで。

$ vi .config/fish/config.fish
alias ga  'git add . '
alias gb  'git branch '
alias gc  'git checkout '
alias gcb 'git checkout -b '
alias gcm 'git commit -m '
alias gl  'git log --oneline '
alias gp  'git pull '
alias gs  'git status '

Fisher のインストール

fishのプラグインの管理ツール
https://github.com/jorgebucaran/fisher

インストール

$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

theme

ここに画像つきの一覧があるので好きなテーマを入れる
https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md

人気なのはこちら
https://github.com/oh-my-fish/theme-bobthefish
個人的にはシンプルなものが好きなのでこちらも利用
https://github.com/oh-my-fish/theme-mars

# Fisher でテーマを追加
$ fisher add oh-my-fish/theme-bobthefish
$ fisher add oh-my-fish/theme-mars

# さらにカスタマイズしたい場合は以下を編集することもできる。
$ vi ~/.config/fish/functions/fish_prompt.fish

jethrokuan/fzf

曖昧検索が凄いやつです。
https://github.com/jethrokuan/fzf

# fzf 本体をインストール
$ brew install fzf

# Fisher で fzf を追加
$ fisher add jethrokuan/fzf

これで ctrl + r で履歴の曖昧検索ができます。

decors/fish-ghq

gitのリポジトリ管理が楽になるやつです。
https://github.com/decors/fish-ghq

# ghq 本体をインストール
$ brew install ghq

# Fisher で fzf を追加
$ fisher add decors/fish-ghq

# ghq.root を設定します。
# ghq.root は複数指定でき、この配下のディレクトリを管理できるようになります。
$ vi .gitconfig
[ghq]
    root = ~/Documents

これで ctrl + g でリポジトリの曖昧検索ができるようになります。

おまけ

anyenv

pyenvとかnodenvをさらに管理するものです。
pyenvとかをそれぞれ入れる前に入れておきましょう。
https://github.com/anyenv/anyenv

# インストール
$ brew install anyenv

# 初期化
$ anyenv init
# Load anyenv automatically by adding
# the following to ~/.config/fish/config.fish:

status --is-interactive; and source (anyenv init -|psub)

# 上記に従い、configファイルを修正
$ vi ~/.config/fish/config.fish

# 以下を追記
status --is-interactive; and source (anyenv init -|psub)

# configを読み直す
$ source ~/.config/fish/config.fish
ANYENV_DEFINITION_ROOT(/Users/mkitaya/.config/anyenv/anyenv-install) doesn\'t exist. You can initialize it by:
> anyenv install --init

# 指示に従う
$ anyenv install --init
Manifest directory doesn\'t exist: /Users/mkitaya/.config/anyenv/anyenv-install
Do you want to checkout ? [y/N]: y
Cloning https://github.com/anyenv/anyenv-install.git master to /Users/mkitaya/.config/anyenv/anyenv-install...
Cloning into '/Users/mkitaya/.config/anyenv/anyenv-install'...
remote: Enumerating objects: 48, done.
remote: Total 48 (delta 0), reused 0 (delta 0), pack-reused 48
Unpacking objects: 100% (48/48), done.

Completed!

使い方は非常に簡単で、例えば nodenv をインストールしたかったら以下のコマンドを打つ。

$ anyenv install nodenv

# shell 再起動
$ exec $SHELL -l

あとは普通に Node.js 等をインストールすればOKです。