zshでよくお世話になっているプラグインの紹介


あまり詳細には書かず、どういうことができるのかとどこらへんが便利かだけを簡潔に書いていきます。

zdharma/zplugin

zdharma/zplugin
遅延読み込みを使った高速な起動が持ち味のzshのプラグインマネージャーです。

zplugの開発が最近あまり活発でないみたいなんで乗り換えました。
プラグインのインストール・アップデートは同期実行しているようでzplugに比べて遅いですが、シェルの起動時の遅延設定などが充実しているためシェルの起動が高速になるのでメリットは大きいと思います。

インストールの設定例
if [ -z "$ZPLG_HOME" ]; then
    ZPLG_HOME="${ZHOMEDIR:-$HOME}/zplugin"
fi

if ! test -d "$ZPLG_HOME"; then
    mkdir "$ZPLG_HOME"
    chmod g-rwX "$ZPLG_HOME"
    git clone --depth 10 https://github.com/zdharma/zplugin.git ${ZPLG_HOME}/bin
fi

typeset -gAH ZPLGM
ZPLGM[HOME_DIR]="${ZPLG_HOME}"
source "$ZPLG_HOME/bin/zplugin.zsh"
autoload -Uz _zplugin
(( ${+_comps} )) && _comps[zplugin]=_zplugin

zplugからの乗り換え方法

基本的にzplugで1行で書いていたものが2行に分かれる感じです。

- zplug 'zsh-users/zsh-completions'
+ zplugin ice wait'!0' lucid
+ zplugin light 'zsh-users/zsh-completions'

1行目にどのファイルを読み込むか、どのブランチを使うかなどプラグインを使用するときの設定が書けます。
プラグイン内で使う設定があるときは別ファイルにして atinit で読み込むとよいと思います。

- zplug 'rupa/z', use:"*.sh"
+ zplugin ice pick"*.sh" atinit"source $ZHOMEDIR/rc/pluginconfig/z_atinit.zsh"
+ zplugin light 'rupa/z'

私が乗り換えた際の書き換えた詳細は↓
https://github.com/yutakatay/dotfiles/pull/662/files#diff-70de4f64ddc0a08431e029bcd57c6eb5

woefe/git-prompt.zsh

woefe/git-prompt.zsh
プロンプト上にGitのブランチ名やステータス状態を表示できるようになります。どんな環境であってもほぼ必須です。

以前はolivierverdier/zsh-git-promptを使っていましたがこちらのほうが非同期で実行できるのでプロンプトの表示がはやくなります。

zdharma/fast-syntax-highlighting

zdharma/fast-syntax-highlighting
入力したコマンドの引数とかに色をつけてくれます。

以前はzsh-users/zsh-syntax-highlightingを使用していましたがこちらのほうが高速らしいです。

hchbaw/auto-fu.zsh

hchbaw/auto-fu.zsh
最近更新が止まっていて悲しいですが今も愛用してます。Tabを押さなくても補完候補を表示してくれます。

古くて嫌な人は、代替としてはzsh-autosuggestionsがありますが、補完候補をすべて表示する機能には対応していないです。https://github.com/zsh-users/zsh-autosuggestions/issues/15

mollifier/cd-gitroot

mollifier/cd-gitroot

gitのプロジェクトルート(.gitがあるディレクトリに)移動してくれます。ただそれだけですが、cd-gitrootと結構な頻度でタイプしている気がします。

t413/zsh-background-notify

t413/zsh-background-notify

パッケージ更新コマンドやビルドコマンドなど時間がかかるコマンドを打ったあとに、処理が終わったら「終わったよ!」って通知してくれるようになります。
ターミナルが声をかけてくれてうれしくなれます

popstas/zsh-command-time

popstas/zsh-command-time

今のコマンド処理なげーな!一体何分かかってるんだよ!ってときにかかった処理時間を教えてくれます。〇〇秒以下は教えてくれなくていいよって設定もできるので便利です。