LoginSignup
1
0

Zsh + Powerlevel10k + プラグインをセットアップする

Last updated at Posted at 2024-03-20

はじめに

Bashよりも強力なシェル Zsh と、フレームワーク Oh My Zsh をインストールし、テーマ Powerlevel10k や最低限のプラグインを導入して、デフォルトのBashの数十倍使いやすくします。

image.png

環境

これは私の環境ですが他の環境でも使えるはずです。

OS: EndeavourOS Galileo Neo
Kernel: 6.7.9-arch1-1-surface
Terminal: yakuake

忙しい人用

以下の2つをコピペすればとりあえず使えるようになるはずです。
忙しくない人は 手順 を読んでください。

Step1 (依存パッケージとOMZをインストール、p10kセットアップ用のzshを待機)
sudo apt install -y zsh git || sudo pacman -S --needed zsh git || sudo yum install zsh git || sudo zypper in zsh git || sudo apk add zsh git;
sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)" &&
zsh
Step2 (p10kとプラグインをインストール、一度exitしStep1のzshでp10kをセットアップ)
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k &&
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions &&
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting &&
sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="powerlevel10k\/powerlevel10k"/' ~/.zshrc &&
sed -i 's/plugins=(git)/plugins=(\
  zsh-autosuggestions\
  zsh-syntax-highlighting\
)/' ~/.zshrc &&
exit

手順

ターミナルのフォントを変更

事前にターミナルのフォントを、Nerd Fontsを含むものに変更しておくことをおすすめします。
NerdFontがあるとこのようなアイコンをターミナル上で表示することができます。
image.png

(通常のフォントの場合はただの豆腐になります)
image.png

私は HackGen Console NF を愛用しています。

Zshをインストール

まずはZshのインストールを行います。
後に使用するためGitも一緒にインストールします。

以下を参考に、自身の環境にあったコマンドを一つ実行してください。

sudo apt install zsh git    # Debian / Ubuntu
sudo pacman -S zsh git      # Arch / Manjaro
sudo yum install zsh git    # RHEL / Fedora
sudo zypper in zsh git      # openSUSE
sudo apk add zsh git        # Alpine

Oh My Zshをインストール

Zshを起動する前に、 Oh My Zshのページ に記載されているインストールスクリプトを実行します。

sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

途中でデフォルトのシェルを変更するか聞かれた場合はyと答えます。

カラフルなoh my zshの文字が表示されればOKです。
image.png

Powerlevel10kをインストール

デフォルトのプロンプトもシンプルで美しいですが、今回はPowerlevel10kを導入してカスタマイズできるようにします。
Powerlevel10kのREADME を参考に、リポジトリをクローンします。

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
出力
Cloning into '/home/meatwo310/.oh-my-zsh/custom/themes/powerlevel10k'...
remote: Enumerating objects: 92, done.
remote: Counting objects: 100% (92/92), done.
remote: Compressing objects: 100% (75/75), done.
remote: Total 92 (delta 18), reused 73 (delta 13), pack-reused 0
Receiving objects: 100% (92/92), 349.34 KiB | 5.21 MiB/s, done.
Resolving deltas: 100% (18/18), done.

~/.zshrcZSH_THEME="robbyrussel"ZSH_THEME="powerlevel10k/powerlevel10k"に置き換えます。

直接編集する場合はこちら
nano ~/.zshrc
コマンド一発で済ませる場合はこちら
sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="powerlevel10k\/powerlevel10k"/'

テーマの設定ができたら、シェルを開き直して反映させます。

Powerlevel10kをカスタマイズ

再度zshを起動すると、自動で設定ウィザードが開くので、環境や好みに応じて、プロンプトをカスタマイズします。

以下に私の場合のウィザード例を載せておきますが、選択肢に応じて質問は変化するので、あくまで参考程度に。

ウィザード例 (⚠️大量の画像を含みます)

ダイヤモンドに見えますか?なのでy
image.png

鍵に見えますか?なのでy
image.png

上向き矢印に見えますか?なのでn
image.png

他のものを試してみましょう。上向き矢印に見えますか?なのでy
image.png

下向き矢印が指している数字は?なので1
image.png

アイコンがバツ印の間に収まっていますか?なのでn(アイコンがいくつかバツ印に被さっています)
image.png

プロンプトの種類はお好みで。私は2 Classicを選択
image.png

文字セットは1 Unicodeがおすすめです。
image.png

プロンプトの色。私は2 Lightを選択
image.png

現在時刻の表示。私はn Noを選択
image.png

プロンプトの区切り。私は1 Angledを選択
image.png

プロンプトの頭。私は3 Sharpを選択
image.png

プロンプトの尻尾。私は5 Roundを選択
image.png

プロンプトの高さ。私は2 Two linesを選択。
image.png

プロンプトの接続。私は1 Disconnectedを選択
image.png

プロンプトの枠。私は1 No frameを選択
image.png

プロンプトの間隔。私は2 Sparseを選択
image.png

アイコン。私は2 Many iconsを選択
image.png

プロンプトの...量? 私は1 Conciseを選択
image.png

コマンドを送信したあとプロンプトを消すか残しておくか。私はyを選択
image.png

インスタントプロンプトなる機能。1 Verboseを選択
image.png

もしすでにコンフィグがあればyで上書き
image.png

y.zshrcに反映
image.png

完!

私はこうなりました。
image.png

設定をやり直したい場合は、p10k configureを実行することで、再度ウィザードを開くことができます。

ちなみに、.zshrcを手動で編集することで、プロンプトに表示する内容を調整できます。
気になった方はぜひ Powerlevel10kのREADME を読んでみてください。

プラグインを導入する

最後に、プラグインを2つ導入します。
一つはzsh-syntax-highlightingで、もう一つがzsh-autosuggestionsです。
前者は入力したコマンドをリアルタイムで色付けし、後者は過去に入力したコマンド履歴を元にした補完候補を表示します。
zsh-syntax-highlighting/INSTALL.mdzsh-autosuggestions/INSTALL.md に従って、それぞれのリポジトリをクローンします。

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

~/.zshrcpluginszsh-syntax-highlightingzsh-autosuggestionsを追加します。

~/.zshrc
  # ...
  # Add wisely, as too many plugins slow down shell startup.
- plugins=(git)
+ plugins=(
+   git
+   zsh-syntax-highlighting
+   zsh-autosuggestions
+ )
  
  source $ZSH/oh-my-zsh.sh
  # ...

シェルを開き直すと反映されます。
(echまで打った図)
image.png

これにてセットアップ完了です。
お疲れ様でした。

おまけ: zsh標準の補完機能について

zshは引数の補完機能が優秀です。
例えば、cd と打ってTabを一回押すと、ディレクトリの一覧が表示されます。
この状態でもう一度Tabを押すことでディレクトリがハイライトされ、Enterで選択することができます。
image.png

また、オプションの補完機能も強力です。
例えば、ls -と打ってTabを押すと、引数の一覧とともに説明が表示されます。
こちらもまた、TabEnterで選択することができます。
image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0