Fish Shellを導入してrbenv, pyenv, nodebrewのパスを通す
ゴールデンウィークということで、環境周りを整備します。
まずは、シェルの環境から! Fishを導入します。
Install Fish
$ brew install fish
$ fish -v
fish, version 2.7.1
Change Shell
- ログインシェルの変更ではなくiTerm2の設定や、VSCodeの設定で変更した
「homebrewでインストールしたfishにchshしていいのか?」というhsbtの指摘はその通りだと思ったので、同じようにterminal.appで設定することにした。ただ、そうするとtmuxが起動時に$SHELLで起動してしまうので、Mac用のtmux.confに以下の設定を入れたんだけどださい。なんかいい方法ないですか?
fishを使いはじめた | けんちゃんくんさんのWeb日記
fish の紹介エントリを眺めていると chsh すると書いてあって、正気かと疑うんだけど、サーバーないし UNIX ライクなシステムで、何かトラブルシューティングしようとしたり、homebrew を purge せざるを得ないみたいな時に確実に死ぬのでやらない方がいいと思う。Terminal.app ならセッションの起動時に使うシェルを chsh とは別に設定できるので、そこで fish を指定するだけで十分なのでそうした。iTerm2 にも似たような設定があったと思う。
zsh から fish にした - HsbtDiary(2017-04-21)
Install Fisherman
fisherman/fisherman: The fish-shell plugin manager.
curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher
Install Theme
fisher omf/theme-agnoster
- テーマ
agnoster
は、特殊な記号を使っているらしく、powerlineのフォントが必要 - 下記コマンドを実行してフォントをインストール
ghq get https://github.com/powerline/fonts.git
cd powerline/fonts
./install.sh
- インストールしたフォントをiTerm2の設定に反映
rbenvのPATH
fisher rbenv
上記コマンドを実行すると、~./.config/fish/conf.d/rbenv.fish
が生成され、その中に設定が記述される。
~/.config/fish/conf.d/rbenv.fish
if not command -s rbenv > /dev/null
echo "rbenv: command not found. See https://github.com/rbenv/rbenv"
exit 1
end
set -l rbenv_root ''
if test -z "$RBENV_ROOT"
set rbenv_root "$HOME/.rbenv"
set -x RBENV_ROOT "$HOME/.rbenv"
else
set rbenv_root "$RBENV_ROOT"
end
set -x PATH $rbenv_root/shims $PATH
set -x RBENV_SHELL fish
if test ! -d "$rbenv_root/shims"; or test ! -d "$rbenv_root/versions"
command mkdir -p $rbenv_root/{shims,versions}
end
pyenv
fisher pyenv
上記コマンドを実行すると、~./.config/fish/conf.d/pyenv.fish
が生成され、その中に設定が記述される。
if not command -s pyenv > /dev/null
echo "Install <github.com/yyuu/pyenv> to use 'pyenv'."
exit 1
end
set -l pyenv_root ""
if test -z "$PYENV_ROOT"
set pyenv_root ~/.pyenv
set -x PYENV_ROOT "$pyenv_root"
else
set pyenv_root "$PYENV_ROOT"
end
if status --is-login
set -x PATH "$pyenv_root/shims" $PATH
set -x PYENV_SHELL fish
end
command mkdir -p "$pyenv_root/"{shims,versions}
nodebrew
set -x NODEBREW_ROOT /usr/local/var/nodebrew
set -x PATH /usr/local/var/nodebrew/current/bin $PATH
peco + ghq
- 前提として、peco と ghqはインストール済
~/.config/fish/config.fish
に下記functionを追加
function fish_user_key_bindings
bind \cr 'peco_select_history (commandline -b)'
bind \c] peco_select_ghq_repository
end
VS Codeのターミナルの設定
- settingsの下記項目を上書きすることで対応
{
"terminal.integrated.shell.osx": "/usr/local/bin/fish",
"terminal.integrated.fontFamily": "Source Code Pro for Powerline",
}
- VS Code上でもfishで立ち上がってくる
Referece
- fish shellチュートリアル
- モダンなshell、fish を導入する - 木木木
- fish shell を使いたい人生だった | Developers.IO
- ghq, peco, hubで快適Gitライフを手に入れよう! - Qiita
- 詳解 fishでモダンなシェル環境の構築(fish,tmux,powerline,peco,z,ghq,dracula) - Qiita
- fishを使いはじめた | けんちゃんくんさんのWeb日記
- Configuration - Integrated Terminal in Visual Studio Code
- Terminal Display Settings - Integrated Terminal in Visual Studio Code
Related contents
TECH
2009.06.22