デフォルトのシェルをfishに変える
今まではずっと zsh
+ oh-my-zsh
を使ってきたがナウい(死語)奴に変えたかったので変えてみた.
まず fish
を入れてデフォルトのシェルに変えるところから.
$ brew install fish $ sudo echo "/usr/local/bin/fish" >> /etc/shells $ chsh -s /usr/local/bin/fish
fishでは export
ではなく set -x
で環境変数を定義するようで, 早速 .zshrc
をコピペしていくつか手直しして source
で反映してみたが不具合が出た.
入力できるはずのコマンドが入力できない.
$ cp ~/.zshrc ~/.config/fish/config.fish $ source ~/.config/fish/config.fish $ exec $SHELL -l $ touch fish: Unknown command touch
なので, 一つずつ試してみて, 何が原因か調べた.
いくつか構文ミスがあって, エラーが出た.
詳しくはここ: https://gist.github.com/mimikun/83c4f385c38ae02ad192141ea7e4660c
主に、 set -x PATH=hoge
などとしてるのが多かった.
なんでこんな書き方するのかわからんけどそういうもんなんだろうな…
ハマりポイント1: Golangの環境変数
$ vim ~/.config/fish/config.fish # Golang set -x GOPATH $HOME/go set -x PATH $GOROOT/bin:$PATH $ source ~/.config/fish/config.fish $ exec $SHELL -l /usr/local/Cellar/fish/3.0.2/share/fish/functions/__fish_pwd.fish (line 1): uname ^ in command substitution called on line 1 of file /usr/local/Cellar/fish/3.0.2/share/fish/functions/__fish_pwd.fish
多分ダメだったのは2行目の GOROOT
のところ.
なので, ここを見て設定し直した.
ハマりポイント2: anyenvの設定
普通に set -x PATH $HOME/.anyenv/bin:$PATH
だけだと以下のように command not found
と出るので少し工夫する.
$ anyenv update Updating 'anyenv'... Updating 'anyenv/anyenv-update'... /Users/mimikun/.anyenv/plugins/anyenv-update/bin/anyenv-update: line 219: goenv: command not found
ここを見て設定した.
set -x PATH $HOME/.anyenv/bin:$PATH anyenv init - fish | source
プロンプトを自分好みに変える
理想は以下のような感じ.
➜ mastodon git:(feature/add_pawoo_hashtag_editor)
ブラウザから設定できるらしいので設定した.
$ fish_config
prompt の Robbyrussell を選択し, set prompt を押すだけで良い.
ghq関係の設定
ここ を見て設定する
$ brew install ghq peco fzf fzy $ fisher add decors/fish-ghq
fisherを使うので予め入れておく
使い方はCtrl+Gと押すだけ, あいまい検索もできる.
以上