MacOSX Ubuntu

zshの機能と設定まとめ

投稿日:2016年3月20日 更新日:

zsh機能の紹介 ニコニコ動画

古い動画だけど

環境

colors 色の設定

色の設定をしておくとあとあと捗る

zshでプロンプトをカラー表示する
zsh で全 256 色を試しに表示みたい

Completion 補完機能

コマンドの入力途中にタブキーを押すと、候補が表示されて、カーソルキーで選択できる.
ctrl+cでキャンセル.
zshのzstyleでの補完時の挙動についてのまま.
screenshot

zsh-completions

zsh-completionsをインストールすれば、gitなど著名なコマンドのサブコマンドもタブで補完できるようになる.

zsh-users/zsh-completions

Macにzsh-completionsを導入&docker用のcompletionも導入

Correction 訂正機能

コマンドを間違えたとき、もしかしてと聞き直してくれる.
screenshot

ここでのプロンプトは、SPROMPTで設定できる.

key binding キーバインド

Emacsモードとvimモードがある.
デフォルトはEmacsモード

keyseffect
ctrl + abeginning of line
ctrl + eend of line
ctrl + lclear screen
ctrl + gsend break
ctrl + bprev word
ctrl + fnext word
ctrl + wdel prev word
ctrl + ddel next word

その他、 bindkey で登録済みのキーバインド一覧が表示される.

よく実行するコマンドにキーバインドを割り当てると捗る話

named directory & autocd

named directoryはディレクトリに別名が付けられる機能.autocdはディレクトリ名の入力だけで移動できる機能.両方を合わせると、別名だけでcdできる.
zshの名前付きディレクトリがとても便利を参照.

また、pushdはcd -[tab]で移動履歴の一覧を表示する機能.

cdr

cdrは、zshに標準添付されているコマンドの1つ.cdr -lで過去の移動履歴を表示して、cdr 2などで指定のディレクトリにジャンプできる.

no such file or directory: /home/seventh/.cache/shell/chpwd-recent-dirsなどと言われたら、ディレクトリを作ればOK

zshでcdの履歴管理に標準添付のcdrを使う

alias エイリアス

global alias

普通のエイリアスは、コマンドの最初からしか反応しない.
これに対して、グローバルエイリアスはコマンドの途中からでも使える.

rails用の設定

github.com/robbyrussell/oh-my-zsh/blob/master/plugins/rails/rails.plugin.zsh

peco と alias -g で git に便利革命おきた

suffix alias

Windowsのように拡張子に応じて、コマンドを使い分ける.

prompt プロンプト

PROMPT2で右側のプロンプトも設定できる.gitなどの情報も表示できると便利.
取りあえず、プロンプトを整えておく。カッコつけたいからね

*上の「色の設定」を使っています。

zshのプロンプトにgitのブランチ名を色付きで表示する

history 履歴

参照
漢のzsh(3) 同じことを2度するなんて…… 自分の過去は利用しましょう
zshの履歴検索は↑やC-rだけじゃないよM-pもあるよ&履歴マニアの話

historyコマンドについて
zshのhistoryを使いこなす
zshのhistoryを便利に使うためのTips

smart-insert-last-word

最後のワードをもう一回入力する.長いファイル名の再入力に便利.

zshで直前のコマンドラインの最後の単語を挿入する

antigen

antigenはzsh用のプラグインマネージャ.
登録しておけば、自動でgithubなどからダウンロードしてくれる.

ダウンロード

.zshrcで読み込み

Antigenを導入してみた

zgen

antigenは起動に時間がかかるのでzgenに移行した.

インストール

.zshrc

zshの起動を高速化する方法

pluginのアップデート

コマンドラインから

あとからpluginを追加する方法

まずは、.zshrcにプラグインを追記

そして、コマンドラインから、 zgen update

zgen自身のアップデート

zsh-syntax-highlighting

打ち込んだコマンドを色分けしてくれる.
使えるコマンドは緑に変わるので便利.

zsh-users/zsh-syntax-highlighting

インストール

antigenの場合

手動でインストールする場合は、.zshにダウンロードする

.zshrcで読み込み

zsh-syntax-highlightingでコマンドをハイライトしてみる

anyframe

zsh上でインクリメンタルな絞り込みを実現するコマンドpeco、percol、fzfの利用例を集めたもの.
どれかをインストールしておくだけでOK.

mollifier/anyframe

zshでpecoと連携するためのanyframeというプラグインを作った

pecoのインストール

releasesから適切なものを選択してダウンロード.
解凍して、PATHの通ったところへコピーすればつかえる.

例えば、ubuntuなどlinuxの場合

anyframeのインストール

antigenの場合は簡単.

手動インストールの場合は、.zshにダウンロードする.

.zshrcに記載

便利.

Mac YosemiteにGoのインストールからghq+pecoを使うまで
ghqは、githubからcloneしたリポジトリを管理するソフト.goで書かれてる.pecoとあわせて使うと便利.
上のキーバインドでは、^xg.登録しなくても自動でgithubからcloneしたディレクトリを認識してくれる.
少し遅い.

enhancd

cdを拡張して、pecoやfzfで選択できるようになる.

zgenの場合

使い方

cd ..<ENTER>

上のディレクトリに移動する際にpecoなどで選択して一気に移動できる.

cd -<ENTER>

以前に移動したディレクトリにpecoなどで選択して移動できる.

Fuzzy search

あいまいな感じでも移動できる.例えば、\rails_newというディレクトリがあるときに、 cd rails とかで移動できる.

edit-command-line

zshのコマンドラインを任意のテキストエディタで編集する

その他

zsh の zmv を使って簡単に複数ファイルを一括リネームする
ag(The Silver Searcher)で検索しpecoで更に絞り込みvimで該当行を開く
zshの外部プラグインまとめ
k – lsとあわせてGitで管理しているファイルの状態を表示する
screenshot
なお、kは、setopt mark_dirsと相性が悪いぽい
zshだとgit reset HEAD^とか、とにかく「^」が使えない。そんなとき。

-MacOSX, Ubuntu
-

執筆者:

関連記事

gulpでelectronをlivereloadしながらcoffeeとsassで開発する環境

By: Nrico – CC BY 2.0 目次1 package.json2 gulpfile.coffee3 bower + browserify4 ストップウォッチ package. …

Ubuntu Server14.04にMediaWikiをインストール

By: Cambodia4kids.org Beth Kanter – CC BY 2.0 目次1 MediaWikiとは2 MariaDBのインストール3 PHP5.6のインストール4 …

Ubuntu14.04のElasticsearch1.5に日本語形態素解析プラグインKuromojiを追加する

By: Bùi Linh Ngân – CC BY 2.0 目次1 Kuromoji2 インストール3 試す4 情報5 日本語の為のスキーマレス環境構築をやってみた Kuromoji el …

Macにzsh-completionsを導入&docker用のcompletionも導入

By: Nikolas Moya – CC BY 2.0 目次1 zsh-completions2 install3 .zshrc4 できた5 docker-zsh-completion6 …

pandasとmatplotlibで株式取引の可視化

By: sprklg – CC BY 2.0 目次1 可視化2 下準備3 pandasのplot4 matplotlibでsubplot5 売買データをプロットする6 番外編 ローソク足チ …