2014年の新年の挨拶以来となる大西ですw
夏休みは終わってしまいましたが、いかがお過ごしでしょうか。
私は、現在Umieで行われている、スプラッシュファンタジア2016へ夏休み最終日(8月15日)に行ってきました。
今年は、例年通り音楽に合わせて大量の水も振ってきますが、炎も加わりかなりイイ感じのイベントです。
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で簡単にできてしまいます。
1 |
$ brew install fish |
続いてデフォルトシェルの変更もインストール時の指示に従えば、簡単です...と言いたいところですが、
1 2 3 4 |
$ chsh -s /usr/local/bin/fish Changing shell for 【ユーザ名】. Password for 【ユーザ名】: chsh: /usr/local/bin/fish: non-standard shell |
と、「標準シェルじゃねー」と怒られてしまいますので、まずは標準シェルとして登録します。
1 |
$ sudo vim /etc/shell |
ファイルを開いて、最終行にfishの記述を追加します。
11行目です。
1 2 3 4 5 6 7 8 9 10 11 |
# List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh /usr/local/bin/fish |
これで、もう一度デフォルトシェルの変更を行えば完了です。
1 2 3 |
$ chsh -s /usr/local/bin/fish Changing shell for 【ユーザ名】. Password for 【ユーザ名】: |
エラーなく無事に終了しました。
シェルを立ち上げなおせば、fishで以下の様に立ち上がるはずです。
fishのスゴいところは、ls -lのaliaseであるllや、ls -laのaliaseのlaが何も設定しなくても最初から使えたり、もっと便利なのが、コマンド補完で、例えば下記の様に「git」と入力後、tabを押せば英語ではありますが、説明付の補完をしてくれる、至れり尽くせりのシェルなのです。
oh-my-fish
oh-my-fishは、Zshの定番oh-my-zshのようなもので、fishのテーマやプラグイン管理を簡単にしてくれるので、入れておいて損はないと思います。今回もpecoのプラグインのインストール時に利用しますので、インストールしておきます。調べると、昔の記事が多くoh-my-fishのリポジトリが変わったようなので、その点の注意が必要です。
oh-my-fishのインストール
公式サイトにあるとおり、そのまま実行します。
※シェルスクリプトを直接実行するので、信用できないサイトや初めて利用する場合は、スクリプトの中身はチェックしてから実行してくださいね。
1 |
$ curl -L http://get.oh-my.fish | fish |
インストールが終わると、omfというコマンドが使えるようになっていると思いますので、確認します。
コマンドプロンプトも魚になってて、粋です。
peco
ようやく、今回のメインのpecoです。pecoについては、このあたりのサイトで詳しく解説されていますので、参考にしてください。
私がやりたいこととしては、コマンドの履歴を Ctrl+rを押して、文字を数文字打てば、マッチする履歴が絞られてくるので、その中から選んで実行することで、ターミナルでの効率を上げることを目的としています。
pecoのインストール
以前と違って、Goを入れたりとかの必要が無く、brewで直ぐにインストール可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
> ~ brew install peco 17:29:40 ==> Auto-updated Homebrew! Updated Homebrew from 89687fe to af3ad3c. Updated 1 tap (homebrew/core). ==> Updated Formulae ammonite-repl calabash jenkins libjson-rpc-cpp radare2 unrar artifactory citus libftdi libpng rancher-compose xonsh awscli flake8 libgcrypt node-build siege youtube-dl brotli gnupg libgit2-glib pillar translate-toolkit ==> Downloading https://homebrew.bintray.com/bottles/peco-0.3.6.el_capitan.bottle.tar.gz ######################################################################## 100.0% ==> Pouring peco-0.3.6.el_capitan.bottle.tar.gz 🍺 /usr/local/Cellar/peco/0.3.6: 5 files, 5.6M ⋊> ~ |
oh-my-fishでpecoプラグインのインストール
1 2 3 4 |
⋊> ~ omf install peco 17:43:05 Installing package peco ✔ package peco successfully installed. ⋊> ~ |
簡単過ぎて、拍子抜けします。
pecoを使う設定
あとは、Ctrl+rでpecoを呼び出せるようにすれば良いだけなので、設定ファイルに以下を追加します。
1 |
⋊> ~ vim ~/.config/fish/config.fish |
追加内容
1 2 3 4 |
#peco function fish_user_key_bindings bind \cr peco_select_history end |
動作確認
上記が完了すれば、自由自在にpecoが使えるはずですので、ターミナルを立ち上げ直して、Ctrl+rでpecoが立ち上がるかを試してみてください。文字を打って絞り込んでも良いですし、上下キー若しくは Ctrl+n や Ctrl+p での移動してEnterで選択も可能です。
素敵な、fishライフを!
キー・ポイントでは、ターミナルの効率を上げるのが大好きなエンジニアを募集しています。