vdeep

*

vdeepはプログラミング、IT、Web技術、ライフハックの事などなどを管理人okutaniがつぶやくブログです

[Mac] zsh+oh-my-zsh環境にpecoを導入&初期設定を行う

      2015/10/12

LINEで送る
Pocket

mac-peco
こんにちは、okutani(@okutani_t)です。zsh環境にpecoを使うことで、入力したコマンド履歴を超便利にたどることができるようになります。pecoを利用すれば、とても快適なターミナル環境を作ることができるのです。

私はMacBookAirを使い始めてからターミナルをよく立ち上げるようになりましたが、それはこのpecoがあるおかげといっても過言ではないです。

それぐらい便利ですし、導入もかんたんにできるのでターミナルを活用している人にはすごくオススメのツールですね。

まだzshを導入していない方は、下記の記事を参考にしておくとより理解が深まるかと思います。zshと同時に「oh-my-zsh」も入れておくと更に便利です。本記事では話をシンプルにするため、これらの導入方法は簡潔に説明する程度に留めています。

Homebrewでzsh導入&oh-my-zsh初期設定まとめ
こんにちは、okutani(@okutani_t)です。本記事では、MacにHomebrewを使ってzsh...
2015-09-14 22:40
はてブ

また、今回はMac上で作業を行っていますのでご了承ください。では、さっそく導入方法を見ていきましょう。

スポンサーリンク

Macのパッケージ管理ツール「Homebrew」を導入

今回、「zsh」「peco」はそれぞれHomebrewで導入していきます。Homebrewがよく分からない方は下記記事を参考にしてください。ここではかんたんに「Homebrewはパッケージを管理するツールだ」と頭に入れておけばOKです。

MacにHomebrewを導入する方法&使い方まとめ
こんにちは、okutani(@okutani_t)です。プログラミングをおこなう際に、みな必ず通る「環境構...
2015-04-18 18:15
はてブ

Macに次のコマンドでHomebrewを導入しましょう。

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

次のコマンドで導入時にエラーがあったか確認しておきます。

$ brew doctor

何も問題がなければ、このHomebrewを使ってzshを導入することができます。

zshを導入する

zshの導入は次のコマンドで行えます。

$ brew install --without-etcdir zsh

Macのzshは起動時にPATHをリセットしてしまうので、「–without-etcdir」をつけて導入しています。

zsh-completions等もここで導入しておくと便利ですが、今回は長くなりそうなので説明を省略します。気になる方は冒頭の「zsh+oh-my-zshの導入記事」を参考にしてください。

デフォルトのシェルをzshに変更

「/etc/shells」に、viで次のようにHomebrewで導入したzshのパス「/usr/local/bin/zsh」を追記します。

$ vi /etc/shells

# 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/zsh # ここに追記

次のコマンドを入力することで、Homebrewで導入したzshに変更することができます。

$ chsh -s /usr/local/bin/zsh

パスワードを求められるので適宜入力しましょう。ターミナルを再起動すると、Homebrewで導入したzshに切り替わります。

では、次にoh-my-zshを導入しましょう。

oh-my-zshを導入する

次のコマンドでoh-my-zshを導入します。

$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

次のサイトを参考にすれば、zshのテーマを変更することができます。気になる方は参考にしてください。

LINKThemes · robbyrussell/oh-my-zsh Wiki

これでMacにzsh環境がすべて整いました。最後に本記事のメインである「peco」を導入しましょう。

peco導入

pecoはHomebrewから導入することができます。Homebrewを使うと本当に導入が楽チンで便利ですね。次のコマンド一発で導入できます。

$ brew install peco

次のように導入されました。

mac-peco2

これだけでpecoの導入は完了です。

ただ、oh-my-zshを導入していると、今の状態ではpecoは動作しません。なので「~/.zshrc」に以下の記述をおこない、pecoが動作するように設定しておく必要があります。

$ vi ~/.zshrc

function peco-select-history() {
    local tac
    if which tac > /dev/null; then
        tac="tac"
    else
        tac="tail -r"
    fi
    BUFFER=$(\history -n 1 | \
        eval $tac | \
        peco --query "$LBUFFER")
    CURSOR=$#BUFFER
    zle clear-screen
}
zle -N peco-select-history
bindkey '^r' peco-select-history

また、このとき一緒に次のコードを~/.zshrcに記述しておけば、zshのコマンド履歴の数を任意に設定することができます。

# ヒストリ(履歴)を保存、数を増やす
HISTFILE=~/.zsh_history
HISTSIZE=100000
SAVEHIST=100000

escZZで保存し、.zshrcファイルを次のコマンドで再読み込みしましょう。

$ source .zshrc

これでctrl + rでコマンド履歴の一覧が表示されます。超便利!

peco

使いやすくキーバインドを設定

さらに使いやすくするため、次の手順でキーバインドを変更しておくと便利です。

「~/.peco/config.json」に下記を記述、ページ送りやキャンセルコマンド等のキーバインドを設定することができます。

~/.peco/config.jsonが無い場合は各自作成しておきましょう。

$ mkdir ~/.peco
$ touch ~/.peco/config.json
$ vi ~/.peco/config.json

次のコードをコピペしてあげれば、ページ送りとキャンセルを設定したキーバインドで行えます。

{
  "Keymap": {
    "M-v": "peco.SelectPreviousPage",
    "C-v": "peco.SelectNextPage",
    "C-g": "peco.Cancel"
  }
}

その他の使い方

コマンドの後にパイプで「peco」と繋いであげると、入力したコマンドをpecoで選択することができます。

$ ls | peco

peco2

私はこれの活用方法がよく分かりませんが、何か便利な使い方があればどなたか教えて下さい!

まとめ

Macにzshとpecoを使うことでめちゃくちゃ快適なターミナル環境を構築することができました。Macでターミナルを使っている方はpeco、必須レベルです。ぜひ試してみてください。

また、私はMacのターミナルソフトに「iTerm2」を使っています。画面分割やタブ表示もできて良い感じです。

iTerm2の導入方法&初期設定や使い方まとめ
こんにちは、okutani(@okutani_t)です。私は普段MacBookAirを使ってネットしたりプ...
2015-09-13 16:44
はてブ

Macユーザー様の参考になれば幸いです。

LINEで送る
Pocket

okutani (okutani_t) のヒトコト
pecoめちゃくちゃ便利ですねー。もっと色々UNIXコマンドを覚えていって、黒い画面をたくさん使いこなせるようになりたいです。

Web開発のお仕事を募集しています

フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。

Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。

ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。

LINKお問い合わせ

LINKokutani's Portfolio


 - ターミナル

スポンサーリンク

PC用AdSense

PC用AdSense

  こちらもどうぞ

vdeepのトップページへ戻る画像です。風船の形をした島を女の子が掴んでいます。