Help us understand the problem. What is going on with this article?

お前らのターミナルはダサい

この記事はOthloTech Advent Calendar 2016の20日目の記事です。昨日は_cheezさんの【css】transform:matrix3dのちょっとしたお話でした。

これは釣りタイトルみたいなものなんで、すごい人は怒らずブラウザバックしてください。

どうもこんにちは、エンジニアと名乗るのはおこがましいレベルにはレベルが低いキンチキです。OthloTechのAdvent Calendarの記事ということで、僕はOthloTech主催の勉強会は結構参加しています。もちろんその他の勉強会にも参加することがあります。

そういう場で隣を見ると学生のターミナルはイケてないことがマジで多いので、サクッとイケてるターミナルにしようって記事です。見た目、大事。

この記事は基本Macの話です。Windowsのコマンドラインのことなんか知りません。Linux使ってる人は自分で色々やっているでしょうから、僕が教えられることはありません。

見た目を気にする

エンジニアあるあるかもしれませんが、人が使ってるエディタやIDEといったツールって気になりません? 僕はめっちゃ気になります。MacだったらDock、Windowsだったらタスクバーやデスクトップになにを置いているかも気になります。

僕はかなり形から入る人間でして、見た目をすごい気にします。自分や人の見た目ももちろんある程度気にしますが、僕がめっちゃ気になるのはエディタやIDEといった各種ツールの見た目です。

そんなわけで、勉強会行ったら隣に座ってる人の画面をちょこちょこ見るわけですよ。ツールはなに使っているのか、どんなテーマを使っているのかなと。そしてエンジニア向けの勉強会はエディタやIDEは当然で、コマンドラインを使うこともよくあります。

そこでですね、隣の人のターミナルを見ると...

1.png

だっせえええええええええええええ!!!!!

2.png

ほげえええええええええええwww!!!!!

ダサい。なにがダサいってデフォルトのありえない背景白テーマがダサいからそれっぽいHomebrewProに変えるだけで「俺エンジニアですよ感」出してるつもりなのがダサい。お前フォント見ろよ。MonacoはまだしもHomebrewAndale Monoってなんだよ。つーかそのフォントサイズをなんとも思わんのか。Proの10ptとかマジで小さすぎて見辛いだろ。

3.png

Macの標準フォントなら思考停止でMenlo使っときゃいいんですよ。デフォルトプロファイルのほとんどはMenloになってるのにエンジニアっぽいHomebrewProは違うフォントになってるのはAppleの悪意ですかね。変えましょう。

フォントはRictyなど入れるのがオススメです。見やすいからモチベーションちょっと上がります。

テーマを変えよう

Macのターミナルのデフォルトプロファイルでまともなのものは無いと僕は思っています。そこで背景や文字の色を自分好みに設定するってのは皆さん通る道だと思います。

それも悪くないのですが、あ、やっぱ悪いです。というか大体は微妙になってしまいます。こういうデザインに関することは、それが得意な人、素養がある人に頼るのが一番です。得意な人は「自分が作ったものを使ってほしい、自分のこそ美しい」とか思ってそうなので、作ったテーマを公開します。まあそんな理由で公開してるわけではないでしょうが、そんな理由の人も少しはいるでしょう。

公開されてるテーマはおそらくあなたが自作するよりずっと綺麗で見やすいです。しかも導入はすぐに終わります。オススメテーマはIcebergです。というかググったらこれがすぐに出てきます。iTermを使っている方はこちらからどうぞ

5.png

青が良い感じですね。ダウンロードサイトもインポートの仕方も作成者の方のブログに書いてあるので参考にしてください。テーマを探してるとSolarizedっていう超定番テーマを紹介してる記事が大量にヒットします。僕はSolarizedが好きじゃなく、好きじゃないのを考慮してもIcebergの方が良いと思います。

デフォルトのプロファイルは復元できるので全て消してOKです。あんなんこういう記事書くときにしか使いません。

6.png

ちなみにVimはHybridにしています。iTermのVimの色を快適にした。(目に優しいデザイン)を思いっきり参考にしました。

7.png

完全に好みですが背景は半透明にするとカッコイイです。中二病をくすぐられます。ターミナルの場合は環境設定>プロファイル>背景>不透明度で変えられます。ブラーっていうのが高いとボヤケます。どちらもお好みの強さにしましょう。

8.png

9.png

シェルも変えよう

ほとんどのUnix系OSのログインシェル(デフォルトのシェル)はbashです。別にbashはダメではなくカスタマイズすれば使いやすいのでしょうが、そんなことするならとっととzshやfishに変えましょう。

技術力があるエンジニアはzshを使ってる人が多い印象です。めちゃ便利ですよzsh。僕はシェルに詳しいわけでも技術力があるわけでもないですが、それでもzshは超絶便利だと思わせてくれます。

正直使いやすかったらシェルなんてなんでもいいと思っていますが、使いやすくしやすいのがzshやfishという印象です。

せっかく見た目がイケてるようになったら、その中身のシェルもイケてるものを使いたいですよね。ということでbashからzshに移行しましょう。以下のコマンドでログインシェルをzshに変更します。多分パスワード聞かれるのでMacのユーザーパスワードを入力してください。

$ chsh -s /bin/zsh

もしHomebrewで新しいzsh入れて使いたい場合、まずHomebrewのデータを最新にしてから普通にインストールします。

$ brew update
$ brew install zsh

Macは--disable-etcdirオプション付けたbrew install --disable-etcdir zshでインストールしないとパスがどうのこうのと問題あるらしいのですが、僕はオプション無しでインストールしてなにも困ってないです。

インストールしたら/etc/shellsにzshのパス/usr/local/bin/zshを追加します。VimでもEmacsでもnanoでもリダイレクトでもなんでもいいです。

/etc/shells
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
# 追加
/usr/local/bin/zsh

そしてログインシェルを変更します。

$ chsh -s /usr/local/bin/zsh

ターミナルを再起動すればzshが起動しています。

プロンプトも変えよう

これはMacのbashのデフォルトのプロンプトです。
10.png

だっせえええええええええええええ!!!!!
つーかみづれええええええええええ!!!!!

え、なにこれ。意味がわからん。デフォルトがこれってシェルのデフォルト設定決めたAppleのエンジニアのセンス疑うわマジで。

カレントディレクトリは必要です。その左、こいつはいったいなんなんだ。こんな情報誰が必要なんだ。コンピュータ名とかローカルではマジでいらないんですが。というかユーザー名もMacのログインユーザーのときはいりません。必要な人はいるんでしょうが、ローカルPCでは少数派な気がします。

あと出力(コマンドの結果とか)とプロンプトの間に一行欲しいです。非常にわかりづらいです。Windowsのコマンドプロンプトはデフォルトで一行空いてますよね。あれにしたいです。

プロンプトのカスタマイズは普通にシェルの設定ファイルに書けば好きなようにできます。でも僕はほとんど調べたことないのでわかりません。自分でカスタマイズしたい人は調べてください。

で、僕はテーマと同様に誰かが作ってくれたpureっていうイケてるプロンプトを使っています。

11.png

二行プロンプトですね。出力とプロンプトに一行空きがあるため大変見やすいです。また、カレントディレクトリ(のパス)とGitの情報以外は多分表示されないです。無駄な情報が無いって良いですね。

僕はpureだけを入れて使っているのではなくPreztoというフレームワークの設定でpureを使用しています。僕はシェルに詳しくないのですが、Preztooh-my-zshを導入するだけで簡単にそこそこ快適な環境ができあがります。コマンドライン初心者は、まずフレームワークを入れて、慣れたら自分でゴリゴリカスタマイズするのがいいかなと。

ということでサクッとPreztoを入れてプロンプトをpureにしましょう。zshが起動している状態で以下の二つのコマンドとシェルスクリプトを入力してターミナル(zsh)を再起動すればOKです。

$ 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

再起動した時点でプロンプトがかなり変わっています。tabの補完も大分変わっています。あとは~/.zpreztorcのプロンプトのテーマをpureにするだけです。:prezto:module:prompt で検索して、プロンプトの設定場所を探してください。

zstyle ':prezto:module:prompt' theme 'sorin'theme の箇所を pure にします。

~/.zpreztorc
#
# Prompt
#

# Set the prompt theme to load.
# Setting it to 'random' loads a random theme.
# Auto set to 'off' on dumb terminals.
zstyle ':prezto:module:prompt' theme 'pure'

ついでに補完とシンタックスハイライトのモジュールも有効にしておきましょう。設定場所はファイルの最初の方にあります。

'syntax-highlighting' \'autosuggestions' \'prompt' \ の上に記載するだけです。なにかの理由で prompt の上に書かないといけなかった記憶があります(気のせいかも)。

~/.zpreztorc
# Set the Prezto modules to load (browse modules).
# The order matters.
zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
  'syntax-highlighting' \
  'autosuggestions' \
  'prompt' \

最後に編集した.zpreztorcを以下のコマンドで読み込むかターミナルを再起動すればOKです。

$ source ~/.zpreztorc

preztoのモジュール一覧と説明はGitHubのprezto/modulesで確認できます。

autosuggestionsのREADMEによるとautosuggestionssyntax-highlightingの後に記述されていないとダメらしいです。

If this module is used in conjuncture with the syntax-highlighting module, it must be loaded after it.
If this module is used in conjuncture with the history-substring-search module, it must be loaded after it.

autosuggestionsの補完はテーマによっては超絶見辛いので注意してください。

Preztoのインストール方法は僕のブログでXcodeの導入からRictyの入れ方までかなり詳しく説明しています。ただし、様々なことを説明しすぎてかえってわかりづらいかもしれません。基本コマンドもよくわかっていない...黒い画面怖い...って人にはオススメです。

zshはPreztoautosuggestions以外にもたくさんのプラグインがあります。mollifierさんのzshの外部プラグインまとめという記事で非常に見やすくまとめられています。ぜひご覧ください。

おわりに

たったこれだけの作業でターミナルがかなりイケてる感じになったかと思います。モチベーションが上がったり、周りからどう見られるかだったりと、やはり見た目は大事だと僕は考えています。

できるだけ自分もツールもイケてる見た目にしていきましょう! 特に自分の見た目には気を使わないと「これだから情報系のキモオタデブコミュ障ニートは…」となってしまい自分が属している分野自体の評価が下がりかねませんからね。

明日はryota_m1020さんの彼女がいないなら創ればいいじゃない.人工彼女を創るためのAI入門です。レベル高そうですしなにより面白そうですね。お楽しみに。

ターミナルの見た目とか人工知能とか正直どうでもいいから僕に彼女をください。

kinchiki
プログラミングは少し好きです。2018年10月より職種がエンジニアではなくなりました。 シェルスクリプトを書くのが一番好きです。得意ってわけではないですしほとんど書ことはありませんが、効率化してる感を一番得られます。
http://kinchiki-it.hatenablog.jp
linkbal
街コンポータルサイト「machicon JAPAN」やマッチングサービス「CoupLink」などを開発・運営しています。
https://linkbal.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした