zshからbashに乗り換えた

これまで zsh + prezto を使っていて、シェルの起動が遅いのが気になっていた。ターミナルでウィンドウ開いてから2,3秒待つくらい。流石に遅い。

というわけでシェルの起動を早くしたいのと、そもそもbashで十分じゃないかと思っていたということでbashの設定を整えてみたのでまとめておく。

プロンプトを変更する

シンプルにカレントディレクトリだけ表示するようにした。プロンプトが長いのはあまり好きじゃない。

f:id:syo_t_2:20170107052144p:plain

.bashrc に以下を記述

PS1="\[\e[1;34m\]\w\[\e[m\] " 

\[\e[1;34m\] で青色指定、\w でカレントディレクトリを絶対パスで表示、\[\e[m\] で先の色指定を解除。最後に半角スペース。

参考:Bashのプロンプト変更 - Qiita

大文字小文字を無視

ディレクトリやファイル補完の際にストレスを感じないように。

~/.inputrc を作成し以下を記述

set completion-ignore-case on

PROMPT_DIRTRIMを設定

深い階層のディレクトリにいるときにプロンプトが長くなってしまわないように。

Before

f:id:syo_t_2:20170107053247p:plain

After

f:id:syo_t_2:20170107053241p:plain

.bashrc に以下を記述

export PROMPT_DIRTRIM=2 # カレントディレクトリから数えて2つ表示。それ以降は省略記号

なお、この設定はbash4以上でないと使えない。(参考:Shortening paths in the Bash prompt with PROMPT_DIRTRIM - Season of Code

Macにデフォルトで入ってる /bin/bash のバージョンは3.2.57 と古かったので、Homebrewで新しいbashを入れた。

brew install bash
sudo sh -c "echo '/usr/local/bin/bash' >> /etc/shells"
chsh -s /usr/local/bin/bash

/usr/local/bin/bash --version #=> 4.4.5

fzf

fzfはzsh使っているときから使ってたけどね。 あまりに快適なのでbashにも導入。 プラグイン入れすぎて重くしないように気をつけないとね。

.bashrc

# fzf初期化。入っていない場合はインストール
if which fzf > /dev/null 2>&1; then
  [ -f ~/.fzf.bash ] && source ~/.fzf.bash
else
  git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf > /dev/null
  ~/.fzf/install > /dev/null
  source ~/.bashrc
fi

fzfインストール済みなら初期化、未インストールならGithubからインストールするように書いてみた。

以下のコマンドを気に入っている。

C-r : コマンド履歴検索。デフォルトではあいまい検索。^ とか$ を使って検索もできる。詳しくはREADMEのココを参照。

C-t: ファイル名補完。再帰的にファイルを検索して、選択するとパスを補完してくれる。emacsとかcatとか、ファイル名を引数に取るコマンドの後にC-tを押すと便利。

Alt-C: ディレクトリ移動補助。再帰的にディレクトリを検索して選択すると移動する。これが一番気に入ってる。

キーバインドをカスタマイズするならココを参照。

所感

シェルの起動がめちゃ早くなった。とても快適。

設定少なめだけど十分快適な気がします。 とりあえずしばらく様子見。