クイック エンジニアリングブログ

株式会社クイック Web事業企画開発本部のエンジニアリングチームが運営する技術ブログです。

【zsh】と【Powerlevel10k】であなた好みのターミナルへ

こんにちは!入社2年目になったソフトウェアエンジニアのじゃがいもです!

最近ターミナルの環境を一新して、非常に作業しやすくなったのでご紹介します

zshとは

zshはシェルの種類の一つです。

正式名称は「Z Shell」で、読み方は(ゼット・シェル、ズィー・シェル)です。

スタンダードなシェルはbashですが、zshは様々なシェルのいいところを総取りした最強のシェルなのです!

macOSはCatalinaからデフォルトシェルがzshに変更されました。

support.apple.com

Powerlevel10kとは

zshにはコマンドラインの見た目を変えてくれる『テーマ』がたくさん存在するのですが、その中でも『処理速度』と『柔軟性』に重点を置いて開発されている有名なテーマがPowerlevel10kです。

1つ前のPowerlevel9kは公式でサポート外になったので、今お使いの方はPowerlevel10kに乗り換えをおすすめします。

f:id:aimstogeek:20210710114351p:plain

導入

今回はmacを使用して説明します。

windowsの方はwindows terminalからwslを使用して導入している方が多いです。

環境

MacBook Pro (13-inch, 2016)
macOS Big Sur 11.3.1
iTerm2 v3.4.8

iterm2インストール

デフォルトでインストールされているターミナルアプリは拡張性に乏しいので、『iTerm2』というターミナルアプリをインストールします。
便利な機能は後ほど紹介します!

iTerm2は公式サイトからダウンロードしてください。

iterm2.com

インストール後、以下のように起動できることを確認してください f:id:aimstogeek:20210710141757p:plain

zshインストール

echoで現在使用しているシェルを確認し、zshになっている方はOKです。それ以外の方はzshをインストールし、シェルを切り替えてください(zshインストールは割愛させていただきます)。

> echo $SHELL
/bin/zsh

/etc/shellsを見ると使用可能なシェルが分かります

> cat /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/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

zshに変更する

> chsh -s /bin/zsh
// 変更後ターミナル再起動

Preztoインストール

1からzshの設定をするのは大変なので、zshのconfiguration frameworkを導入します。フレームワークには頼らず、自分でカスタマイズしたいよ!という方は飛ばしていただいて構いません。
元々私はoh-my-zshを使用していましたが、より高速な画面描画が可能なPreztoに乗り換えました。

リポジトリをclone
> git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

これからホームディレクトリに以下のファイルを作成するので既存でこれらのファイルを使用している方がいたら、バックアップを作成してください
.zlogin
.zlogout
.zpreztorc
.zprofile
.zshenv
.zshrc

設定ファイルを作成
> setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

ターミナル再起動

以下のように見た目が変わったら導入完了。

f:id:aimstogeek:20210710135249p:plain

github.com

Powerlevel10kインストール

リポジトリをclone
> git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k

zshrcに設定書き込み
> echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc


ターミナル再起動

以下のような設定画面が表示されたら成功

f:id:aimstogeek:20210710135306p:plain

ここからはPowerlevel10kの設定です。

好みのターミナルに仕上げていきましょう!
(戻る時はr、Yesはy、Noはn、止める時はqを選択してください)

以下は私好みの設定です。参考にしてください。

1, Install Meslo Nerd Font
yes
通常のフォントでは文字化けを起こすためインストールしています。

私は設定終了後にCicaというフォントをインストールして使用しています
↓おすすめフォント github.com

2, ターミナルの再起動

3, Does this look like a diamond?
ダイアモンドに見えていたらYes

4, Does this look like a lock?
ロックのマークに見えていたらYes

5, Does this look like a Debian logo?
Debianのロゴが見えていたらYes

6, Do all these icons fit between the crosses?
収まっていているのでYes

7, Prompt Style
(2) Classicを選択したいので『2』

8, Character Set
Unicode

9, Prompt Color
(3) Dark

10, Show current time?
(2) 24-hour format

11, Prompt Separators
(1) Angled

12, Prompt Heads
(4) Round

13, Prompt Tails
(5) Round

14, Prompt Height
(2) Two lines

15, Prompt Connection
(3) Solid

16, Prompt Frame
(2) Left

17, Prompt Spacing
(2) Sparse

18, Icons
(2) Many icons

19, Prompt Flow
(2) Fluent

20, Enable Transient Prompt?
No

21, Instant Prompt Mode
(1) Verbose

22, Apply changes to ~/.zshrc?
Yes

ここまでで設定は終了です。

以下のような見た目になりました!

f:id:aimstogeek:20210710135324p:plain

github.com

デフォルトのエディタ設定

Preztoのデフォルトエディターの設定がnanoになっているのでvimに変更します。 ~/.zprofileの20行目あたりにあるEDITORとVISUALをnanoからvimに変更します。

> vim ~/.zprofile
export EDITOR='vim'
export VISUAL='vim'

// 反映
> source ~/.zprofile

iterm2設定

ここからはiterm2の設定に入ります。
透過率の設定、cpu使用率、メモリ使用率等が分かるStatus barの表示をしていきます。

1, 透過率の設定
iterm2 > Preferences > Profiles > Windows内のTransparencyをお好みで設定してください。合わせてBlurの設定もすると見やすくなります f:id:aimstogeek:20210710140917p:plain

2, Status barを表示
iterm2 > Preferences > Profiles > Session内のStatus bar enabledを選択 f:id:aimstogeek:20210710141325p:plain

Configure Status barを選択
欲しいコンポーネントを選択してください
※下部にあるAuto-Raibowを設定すると見た目が可愛くなります f:id:aimstogeek:20210710135416p:plain

3, Status barの位置を下部に設定
iterm2 > Preferences > Appearance > General内のStatus bar locationをBottomに設定 f:id:aimstogeek:20210710135534p:plain

4, Color設定
iterm2 > Preferences > Profiles > Colors内のColor Presetsを『pastel(Dark Background)』に設定 f:id:aimstogeek:20210710135616p:plain

iterm2 & zsh便利機能

・command + Dで画面分割
f:id:aimstogeek:20210710135640p:plain

・サジェスト時にtabや矢印で次の候補を選択することができる
f:id:aimstogeek:20210710135701p:plain

・入力されているコマンドから履歴を検索できる
f:id:aimstogeek:20210710135912p:plain

・cdコマンドの省略
f:id:aimstogeek:20210710135934p:plain

最後に

ここまで一緒に進めていただいた方は、カッコよくて使いやすいターミナルになったのではないでしょうか。

カスタマイズ箇所はまだまだたくさんあるので、あなた好みのターミナルへ仕上げてください。

ここまでお読みいただきありがとうございました。


\\ 『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //

919.jp