fishからのpecoの利用が簡単過ぎるので移行完了

2016.08.19.金
Mac技術

2014年の新年の挨拶以来となる大西ですw

夏休みは終わってしまいましたが、いかがお過ごしでしょうか。

私は、現在Umieで行われている、スプラッシュファンタジア2016へ夏休み最終日(8月15日)に行ってきました。

スプラッシュファンタジア2016
今年は、例年通り音楽に合わせて大量の水も振ってきますが、炎も加わりかなりイイ感じのイベントです。
23日までですので、興味のあるご近所の方は着替えを持って行ってみてはどうでしょうか?もちろん、濡れないエリアでの観戦もありですが、個人的には少しでも濡れた方がイイかなと思います。

前置きが長くなりましたが、本題です。

以前から、一部のマシンでは、Zshからfishへデフォルトシェルを変更してみたのですが、ぜんぜん時間が取れずよく使うpecoがzshのみという中途半端な状態を半年以上放置していたので、オリンピックを見ながら思い切ってfishに全面移行するために、fishからpecoを使える様にしてみました。

なんか、思っていた以上に拍子抜けで簡単にできてしまったので、その紹介です。

社内では、Zshを薦めて以降は放置気味なので、そろそろfishの啓蒙も社内向けに兼ねております。



fishのインストールと初期設定


環境

  • OS X El Capitan(10.11.6)
  • Homebrew 0.9.9 (git revision 8235; last commit 2016-08-17)

Homebrewにつきましては、導入済みという前提で話を進めさせていただきます。

fishのインストールとデフォルトシェルの変更


インストールは、brewで簡単にできてしまいます。


続いてデフォルトシェルの変更もインストール時の指示に従えば、簡単です...と言いたいところですが、


と、「標準シェルじゃねー」と怒られてしまいますので、まずは標準シェルとして登録します。


ファイルを開いて、最終行にfishの記述を追加します。
11行目です。


これで、もう一度デフォルトシェルの変更を行えば完了です。


エラーなく無事に終了しました。

シェルを立ち上げなおせば、fishで以下の様に立ち上がるはずです。
fish
fishのスゴいところは、ls -lのaliaseであるllや、ls -laのaliaseのlaが何も設定しなくても最初から使えたり、もっと便利なのが、コマンド補完で、例えば下記の様に「git」と入力後、tabを押せば英語ではありますが、説明付の補完をしてくれる、至れり尽くせりのシェルなのです。fish2

oh-my-fish

oh-my-fishは、Zshの定番oh-my-zshのようなもので、fishのテーマやプラグイン管理を簡単にしてくれるので、入れておいて損はないと思います。今回もpecoのプラグインのインストール時に利用しますので、インストールしておきます。
調べると、昔の記事が多くoh-my-fishのリポジトリが変わったようなので、その点の注意が必要です。

oh-my-fishのインストール


公式サイトにあるとおり、そのまま実行します。
※シェルスクリプトを直接実行するので、信用できないサイトや初めて利用する場合は、スクリプトの中身はチェックしてから実行してくださいね。


インストールが終わると、omfというコマンドが使えるようになっていると思いますので、確認します。

コマンドプロンプトも魚になってて、粋です。
omf

peco

ようやく、今回のメインのpecoです。
pecoについては、このあたりのサイトで詳しく解説されていますので、参考にしてください。

私がやりたいこととしては、コマンドの履歴を Ctrl+rを押して、文字を数文字打てば、マッチする履歴が絞られてくるので、その中から選んで実行することで、ターミナルでの効率を上げることを目的としています。

pecoのインストール


以前と違って、Goを入れたりとかの必要が無く、brewで直ぐにインストール可能です。



oh-my-fishでpecoプラグインのインストール


簡単過ぎて、拍子抜けします。

pecoを使う設定


あとは、Ctrl+rでpecoを呼び出せるようにすれば良いだけなので、設定ファイルに以下を追加します。


追加内容



動作確認

上記が完了すれば、自由自在にpecoが使えるはずですので、ターミナルを立ち上げ直して、Ctrl+rでpecoが立ち上がるかを試してみてください。

文字を打って絞り込んでも良いですし、上下キー若しくは Ctrl+n や Ctrl+p での移動してEnterで選択も可能です。

素敵な、fishライフを!








キー・ポイントでは、ターミナルの効率を上げるのが大好きなエンジニアを募集しています。