fish-shell入門

fish-shell入門

Macのshellをデフォルトでfish-shellなんかにしてみました。POSIX非互換だそうです。

brew install fish

fish-shellを実行します。

/usr/local/bin/fish

デフォルトでfish-shellにしたい場合はchshコマンドでデフォルトシェルを変更します。

/etc/shellsファイルに/usr/local/bin/fishを追記しておきます。

chsh -s /usr/local/bin/fish

確認します。

takahashi@Air ~> echo $SHELL
/usr/local/bin/fish

ログインシェルがfish shellに変更されているのが確認できました。

fish shellは入力補完してくれるのですごい便利です。それとシンタックスハイライトされていて見栄えも良い感じです。好みによるかもしれませんが。

fish_configコマンド

fish_configコマンドでなんとブラウザが起動します。このブラウザからfish shellの設定を変更できるようになっています。ちょっとこれには驚きました。

fish-shell入門

cdがcdじゃないです。cd ~としていたところを~とするだけでホームディレクトリに移動することができます。さすがPOSIX非互換です。

どうもcdが省略できるっぽいです。

takahashi@Air >pwd
/var/log/
takahashi@Air >apache2/
takahashi@Air >pwd
/var/log/apache2

cdを省略してもディレクトリ移動ができます。最後にスラッシュを付けないと移動できません。

pwdはpwdのままのように思われます。

よく使うhistoryコマンドはhistory clearすると履歴を削除します。

history search --contains 'ls'

上記でhistoryの中のコマンドで、ls文字列があるコマンドのみを表示します。

履歴の一部を削除したい場合はclearではなくdeleteを使用します。

takahashi@Air >history --delete 'ls'
[1]〜〜
[2]〜〜

対象となるコマンドが複数表示された場合は、そのエントリーを選択して削除します。

takahashi@Air >1 2

半角スペースで区切ります。

コマンドラインをviモードにする

fish shellはデフォルトはemacsモードなのですが、fish_vi_key_bindingsコマンドで、コマンドラインをviのようにすることができます。

困ったらエスケープを連打、iでインサートモードです。

詳細はvi入門を読んでください。

ちなみにemacsモードに戻すにはfish_default_key_bindingsコマンドを実行します。

fisherプラグイン

便利なプラグインがあります、まずfisherプラグインをインストールします。これはプラグインマネージャで、プラグインの管理をするプラグインです。

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

便利プラグイン

fisher add jethrokuan/z

過去に移動したディレクトリでマッチするディレクトリに一気に移動してくれます。

z log

とタイプすると、/var/log/に移動してくれたりします。便利ですね。

コメント

タイトルとURLをコピーしました