今更ながらzplugを動作させてみた

便利設定を入れたけど読み込みコマンドを実行していなかったために実は全く機能していなかった、ということもあるかもしれません。zplugでおきた怖いお話です。
2024.04.08

HomeBrew経由でインストールしたライブラリと、個別にインストールしたライブラリをそれぞれ整理していたところ、zplugの設定はあるものの全く読み込まれてない事に気が付きました。どういうことかというと、以下の1文が長らく欠けていたのです。

zplug load --verbose

ただ、zplugへ追加するプラグインだけは沢山指定がありました。要は全く作用していないのに「便利だな」と思っていた機能がいくつかあったということ。おそらくは別のライブラリによる補完でしょう。

今回これを有効にしたところ、zshが全然別物になりました。現在のMacOSデフォルトシェルはzshです。zplugはzsh生活を快適にしてくれます。作業記録ついてに知らない方向けのレクチャーとしてみました。

セットアップ

HomeBrewで入れます。

brew install zplug

設定する

先ずは即利便性が上がる項目を設定します。

vim ~/.zshrc

.zshrcに以下の内容を追加しておきます。

export ZPLUG_HOME=/opt/homebrew/opt/zplug
source $ZPLUG_HOME/init.zsh
# Load theme file
zplug 'zplug/zplug', hook-build:'zplug --self-manage'
# 非同期処理できるようになる
zplug "mafredri/zsh-async"
# テーマ(ここは好みで。調べた感じpureが人気)
zplug "sindresorhus/pure"
# 構文のハイライト(https://github.com/zsh-users/zsh-syntax-highlighting)
zplug "zsh-users/zsh-syntax-highlighting"
# コマンド入力途中で上下キー押したときの過去履歴がいい感じに出るようになる
zplug "zsh-users/zsh-history-substring-search"
# 過去に入力したコマンドの履歴が灰色のサジェストで出る
zplug "zsh-users/zsh-autosuggestions"
# 補完強化
zplug "zsh-users/zsh-completions"
# 256色表示にする
zplug "chrissicool/zsh-256color"
# コマンドライン上の文字リテラルの絵文字を emoji 化する
zplug "mrowa44/emojify", as:command
# Install plugins if there are plugins that have not been installed
if ! zplug check --verbose; then
    printf "Install? [y/N]: "
    if read -q; then
        echo; zplug install
    fi
fi
zplug load

シェルを起動させて再読み込みさせます。

% exec $SHELL -l
- mafredri/zsh-async: not installed
- zsh-users/zsh-completions: not installed
- zsh-users/zsh-autosuggestions: not installed
- chrissicool/zsh-256color: not installed
- sindresorhus/pure: not installed
- zplug/zplug: not installed
- mrowa44/emojify: not installed
Install? [y/N]: y
[zplug] Start to install 7 plugins in parallel

 ✔  Installed!            mafredri/zsh-async
 ✔  Installed!            zsh-users/zsh-completions
 ✔  Installed!            zsh-users/zsh-autosuggestions
 ✔  Installed!            chrissicool/zsh-256color
 ✔  Installed!            sindresorhus/pure
 ✔  Installed!            zplug/zplug --> hook-build: success
 ✔  Installed!            mrowa44/emojify

[zplug] Elapsed time: 3.4565 sec.
 ==> Installation finished successfully!

 Load "/opt/homebrew/opt/zplug/repos/zsh-users/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh" (zsh-users/zsh-autosuggestions)
 Load "/opt/homebrew/opt/zplug/repos/zsh-users/zsh-syntax-highlighting/zsh-syntax-highlighting.plugin.zsh" (zsh-users/zsh-syntax-highlighting)
 Load "/opt/homebrew/opt/zplug/repos/zsh-users/zsh-completions/zsh-completions.plugin.zsh" (zsh-users/zsh-completions)
 Load "/opt/homebrew/opt/zplug/repos/zsh-users/zsh-history-substring-search/zsh-history-substring-search.plugin.zsh" (zsh-users/zsh-history-substring-search)
 Load "/opt/homebrew/opt/zplug/repos/sindresorhus/pure/pure.plugin.zsh" (sindresorhus/pure)
 Load "/opt/homebrew/opt/zplug/repos/chrissicool/zsh-256color/zsh-256color.plugin.zsh" (chrissicool/zsh-256color)
 Load "/opt/homebrew/opt/zplug/repos/mafredri/zsh-async/async.plugin.zsh" (mafredri/zsh-async)
 Link "/opt/homebrew/opt/zplug/repos/mrowa44/emojify/emojify" (mrowa44/emojify)
[zplug] Run compinit

多少ログに違いがあるかもしれません。また、非同期となるため、ログ出力にやや時間差があります。


操作の違い

.zshrcを編集しようとするだけでも差異が分かるはずです。

この状態で右矢印キーを押すと補完がなされます。

あとがき

「言うほど便利なのかな、zplug」と思っていましたが、便利でした。詰めが甘くて完全に動作させていないというケースは時折ありますが、全く動作していないのは衝撃でした。

zsh環境で操作している方で快適な環境がほしい方には先ずおすすめです。