なんか自分のzshが重い。
ターミナル立ち上げてコマンドが打てるようになるまで1秒ぐらいかかる。
おおかたoh-my-zshあたりが余計なことをしているんだろう。
これは設定を見直す必要がある。
ところで、fish shellというやつが前から気になっていた。
せっかくだし、これに乗り換えてみることにした。
fishの良さは検索すれば山ほど出てくるので割愛する。
自分の環境は以下の通り:
- OS: macOS Sierra
- ターミナルエミュレータ: iTerm2
- 配色: Solarlized Dark
個人的な作業記録なので「ふーん」ぐらいの感じで読んで欲しい。
インストール
fish本体
brew install fish
fish用のプラグイン管理ツールは fisherman を使う:
curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisher
プラグインのインストール
ディレクトリ移動を楽にしてくれる zコマンド:
fisher z
bash構文でコマンドを実行できる bass:
fisher edc/bass
powershell用テーマ:
fisher simnalamburt/shellder
他いろいろ入れる。
pecoを使えるようにする
過去に打ったコマンドを部分一致で検索して実行できる神コマンド peco をfishでも使えるようにする。
いわゆるInteractive Filtering Tool。
まだインストールしてない人:
brew tap peco/peco
brew install peco
設定
~/.config/fish/functions/peco_select_history.fish
を作成:
function peco_select_history
if test (count $argv) = 0
set peco_flags --layout=bottom-up
else
set peco_flags --layout=bottom-up --query "$argv"
end
history|peco $peco_flags|read foo
if [ $foo ]
commandline $foo
else
commandline ''
end
end
~/.config/fish/config.fish
に以下を追記:
function fish_user_key_bindings
bind cr peco_select_history # Bind for peco select history to Ctrl+r
end
これでCtrl+r
で呼び出せる。ヒャッハー!
nvmからnに乗り換える
結局zshが重い問題の原因は、nvmがボトルネックな事だった。
nvm use default
とかやるごとに 0.5s とかかかんの。ありえなくない?
試しにn に乗り換えたら、こちらはファイルをコピーする方式なので初期化コストゼロだった。さすが天下のTJ!
tmuxの設定をfishに合わせる
reattach-to-user-namespaceを使っているので、こいつのパラメータをzshからfishにしてやる。
これはtmux内でもvimでyankしたやつを自動でpbcopyしてくれる便利なやつ。
.tmux.conf
:
# osx clipboard
set-option -g default-command "reattach-to-user-namespace -l fish"
トラブルシューティング
vimとかの色がおかしい
ターミナルが256色対応であることを伝える必要がある:
~/.config/fish/config.fish
:
set -g TERM xterm-256color
軽くなった!わーい!サカナ! >< (((o>