13
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

N高等学校Advent Calendar 2019

Day 22

卍 ZshとPreztoで使いやすくてDQNなターミナル環境を構築をする 卍

Last updated at Posted at 2019-12-21

卍 はじめに 卍

この記事は N高等学校 Advent Calendar 2019 の22日目の記事です。

こんにちは。普段はGoを使ってwebアプリ作ったりインターンをしたりしてるN高一年の人です。
プログラミングを始めて半年くらいの初心者です。
本当は真面目にGoの入門記事書こうと思ったんですが、いつの間にか担当日前日になっていて「書けねえ...」となったので今日思いついたネタで記事を書きます。お願いします。

Preztoってなに?

PreztoはZshをいい感じにしてくれるフレームワークです。

決してターミナルをDQN仕様にするフレームワークではありません。

この記事で唯一ためになる要素がPreztoと言えます。

Preztoには様々なモジュールが用意されており、それらに関連したコマンドが快適に使えるようになります。

例えばDockerモジュールだと docker images コマンドが dki で実行できたり、
docker run -it --rm <コンテナ名> /bin/bash コマンドが dkRe <コンテナ名> で実行できたりするエイリアスが設定されています。
スクリーンショット 2019-12-22 1.51.20.png
その他にも上の画像のようにカレントディレクトリのパスが表示されるようにしたりGitの現在のBranchが表示されるようにしたりすることができます。
他にも色々な便利機能があるので気になる方はググってみるといいかもしれません。

インストール

Zshのインストール

「Bash使ってるんだけどDQN仕様にしたいからZshにするね」という方はZshのインストールからお願いします。もうZshを使っている方も念のため再インストールした方がいいかもしれません。これもDQNターミナルに進化するには必要な過程なのです。

Macの場合
brew install zsh からの chsh -s /usr/local/bin/zsh でターミナルを再起動するといけるかと思います。
もうインストール済の場合は rm ~/.zshrc からの brew uninstall zsh --force からのインストールでいけるかと思います。
インストール済の方はzshrcのバックアップをしないと面倒なことになるので忘れずに。

ここではWindowsとLinuxの説明は省かせていただきます。筆者がMacユーザー&担当日当日の深夜に執筆しているということを踏まえ、ご容赦ください。

MacOSでしか試してないのでその他のOSでは不具合が生じるかもしれませんが、適当にググればいけると思います。
自分で調べて実行することもDQNターミナルへの道を進んでいくには必要なのです。

Preztoのインストール

やっと本記事の主役Preztoさんのインストールに入ります。

ターミナルで

git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

を実行してください。これだけです。

インストールが完了したら次は設定ファイルを生成します。

setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

これをターミナルで実行するだけで設定ファイルが生成されます。簡単ですね。
一旦Zshを再起動させたりしてみるといつもと違うターミナル画面が表示されていたら成功です。

しかし、おそらく文字化けを起こしていると思います。標準フォントではないフォントが使われているためです。
なので新たにフォントをインストールします。

# clone
git clone https://github.com/powerline/fonts.git --depth=1

cd fonts

# install
./install.sh

cd ~

# clean up
rm -rf fonts

ターミナルの環境設定から新たにインストールした ProFont for Powerfont というフォントを選択して文字化けが治ったら成功です。

これで一通りのインストールが終わりました。

モジュールを追加してエイリアスをバンバン使っていきたいよーという方は ~/.zpreztorcの30行目付近にある

 zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
  'prompt' \
  'docker' \ #new!!!

ここにモジュール名を追加するとエイリアスが使えるようになります。

どんなモジュールがあるかと、その使い方はREADMEに書いてあるのでGitHubを参考にしてください。

ここからが本編です。
普通の記事ならここで終わりですが、この記事ではここからが本編です。

早速カスタマイズに入っていきましょう。

カスタマイズ

テーマ

まずはテーマを選びましょう。
Preztoには多くのテーマがあり、それが各々のターミナルの一番の個性となるといっても過言ではないでしょう。
ターミナルで prompt -p を実行するとプレビュー付きでテーマ一覧が表示されます。

↓こんな感じ
スクリーンショット 2019-12-22 3.07.07.png
theme: の前に書かれたsorinなどがテーマ名です。
prompt -p <テーマ名> でそのテーマのプレビューができます。

自分の好みのテーマが見つかったら、次はそれを適応させます。

~/.zpreztorc の115行目周辺にある

zstyle ':prezto:module:prompt' theme 'powerline'

という行のthemeの後ろにあるシングルクォーテーションの中に任意のテーマ名を書くことで適応させることができます。
筆者はpowerlineというテーマを使っています。

保存してZshを再起動させるとテーマが適応されているかと思います。されていない場合は source コマンドを使ったりするとうまくいくかもしれません。

ターミナルに個性がついてきました。
次は色を調節していきます。

カラー

テーマを変更したことでターミナル個性がついてきましたが、色をカスタマイズすることであなたのターミナルは唯一無二の存在へと進化することでしょう。

ターミナルの環境設定のANSIカラーを変更することで自分専用の色に変更することができます。
↓赤で囲った場所
スクリーンショット 2019-12-22 4.05.31.png
よりDQN感を出すにはビビットな色に。
特にシアン・レッド・ピンクの原色に近い色などに設定すると視認性が下がり、よりDQN感がでると思います。

↓筆者のターミナル
スクリーンショット 2019-12-22 4.42.35.png

この他にも背景画像を設定したり、通常テキストの色を変えてみたりするとおもしろいと思います。
ただし視認性が下がりまくるので1日楽しむくらいがちょうどいいかと思います。

ちなみに視認性の低さとDQN度は比例します。

あとがき

「DQNとはなんだろう」「というかこれPrezto使う必要なくね?」とか考えながらこの記事を書いていました。

タイトル詐欺なのかそうではないのか、そもそもDQN感ってなんだよとかは置いておいて、とりあえずZshを使う上で便利なPreztoを紹介できてよかったです。

今度はGoの記事も書こうと思うので、そのときもよろしくお願いします。

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

###参考記事

13
1
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
13
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?