iTerm, zsh, vimをかっこよくセットする


MacBookAirにシステムの不具合があったのでディスクフォーマットして対処。
いざバックアップしようとしたら「失敗しました」だと!?

残されたのはiCloudに残された書類のみ。
仕方ないので自力でセットアップしていく。

せっかくなので一つ一つ理解しながら進めていく。

目標

OSX(Mojave10.14.3)しか入っていないまっさらな状態から、かっこいいターミナル、かっこいいVimを整えて、pythonとC++を実行できるようにする。

手順

  • homebrewをインストール
  • iTerm2を整える。
    • 1_インストール
    • 2_bashからzshにする
    • 3_zshrcの設定
    • 4_カラースキームの設定
    • 5_フォント「ricty」を入れる
    • 6_プロンプトを変える
  • vimを整える
    • 1_vimrc
    • 2_カラースキームの設定
  • gcc
    • 補足 エイリアスとシンボリックリンク
  • Python
    • zshでanacondaを使う人はここで注意。
    • zshでanacondaを使えるようにするには?
    • 他のパッケージのインストール

homebrewをインストール

MacにHomebrewを導入する方法&使い方まとめ
これに従ってインストールする。ちなみにあの重い重いxcodeのアプリを入れなくてもこのコマンドは実行可能。
$ xcode-select --install

iTerm2を整える。

標準で入っているTerminalを使っていたのですが、色々なお話を見るにつれてどうやらiTerm2の方が何かといいらしいのでインストールすることに。
参考:MacのターミナルアプリにはiTermがオススメ

以下のかっこよくする流れはこの記事を参考。
お前らのターミナルはダサい

1_インストール

  1. iTerm2のサイトへ行き、zipファイルをダウンロード。場所はどこでも。
  2. ダウンロードしたzipファイルをダブルクリックすれば展開され、本体が出てくる。
  3. 本体を開くと「applicationに追加するか?」と聞かれるので「追加する(Move to Application Folder)」をクリック。するとApplicationフォルダにiTerm2が追加される。(ダウンロードフォルダにあるやつは消しちゃっておっけ)

2_bashからzshにする

初心者向け:Zshの導入
こういう記事を見るとどうやらbashよりもzshがいいらしい。
この記事に従ってhomebrewでインストールできる。

ただこのままだとパスが通ってないって怒られる。
最終的にこれを~/.zshrcに書いたら治った。

~/.zshrc
export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"

はて?これは一体何をしているんだ?

この二つの記事がとても分かり易かった。
PATHを通すとは? (Mac OS X)
PATHを通すために環境変数の設定を理解する (Mac OS X)

3_zshrcの設定

少し凝った zshrc
これを~/.zshrcに書いてあげればとりあえずオーケー

4_カラースキームの設定

人気のicebergにする。
https://github.com/Arc0re/Iceberg-iTerm2
これに従って設定すればオッケ。

5_フォント「ricty」を入れる

rictyはプログラミングに特化したフォントで、とにかく見やすい。
下記を参考にインストールしていく。
プログラミング用フォントRictyをMacにインストールする

6_プロンプトを変える

zshプロンプトのカスタマイズ
この記事を参考に~/.zshrcのプロンプトの部分を書き換えればオッケ。
僕はこんな感じ

~/.zshrc
PROMPT="
%{${fg[magenta]}%}[%n@%m]%{${reset_color}%} %~
$ "

こんな風に表示される

スッキリした!

記号についてはこの記事を参考。

Fiはアカウント名、FiMacはPCの名前だ。
なんで両方表示させるかというと、ローカル開発環境やらラズベリーパイにログインした時居場所がわかった方がいいからだ。

vimを整える

1_vimrc

vimrcはこれをコピペ。
何も考えず~/.vimrcにこれを書くんだ! 〜vim初心者によるvim初心者のためのvim入門〜
gvimrcってのはguiに関するところを扱うらしい。

2_カラースキームの設定

vimのカラースキームもicebergにしたい。
vimのカラースキーム (colorscheme) を "molokai" に設定するを参考にicebergを設定した。

まずホームディレクトリ(~)に.vimのディレクトリを作成。その中にcolors/ディレクトリを作る。

$ mkdir ~/.vim
$ cd ~/.vim
$ mkdir colors

.vimにgithubからicebergをインストールする。
インストールしたらiceberg.vim/colors/にある本体iceberg.vim~/.vim/colorsにうつしてやる。

$ git clone https://github.com/cocopon/iceberg.vim/
$ mv iceberg.vim/colors/iceberg.vim ~/.vim/colors

仕上げに~/.gvimrc~/.vimrcのカラースキームをicebergに変更してやれば完了。

~/.gvimrc
" カラースキーム
colorscheme iceberg

gcc

gccは最初からmacに入っているのだが、最新版が欲しい。
この記事に従って最新版をインストールする。
Macのgcc, g++をHomebrewを使って最新版にする

補足 エイリアスとシンボリックリンク

「エイリアス」「シンボリックリンク」という単語の意味がよくわからなかったけど、この記事で理解できた。

/usr/local/binにいくとファイル名の最後に@がついたファイルがいっぱいある。これはシンボリックリンクで、本体がある場所に紐づけられている。そしてこのリンク自体を本体と同じように扱うことができるのだ。

一方で実行ファイルには*がついている。

これらの記号の説明はここを見ておくといい。

Python

Anacondaをインストールしてしまえば必要なものはほとんど揃っている。
Anaconda を macOS にインストールする手順
python3系のバージョンをインストールする。

zshでanacondaを使う人はここで注意。

上記リンクにも書いてある通り、Anacondaは/anaconda3にインストールされる。
そしてpathの設定も自動的に.bash_profile にやってくれるというのだ。

ん?今使ってるのはbashじゃなくてzshだぞ?ってことで、ただインストールしただけだとzshからanacondaを使うことはできない。

例えばpython3系のanacondaをインストールしたのにバージョンを確認したらpython2系だったりした時は、多分標準でmacに入っているpythonが表示されているだけなので以下の作業が必要だ。

[Fi@FiMac] /anaconda3
$ python --version
Python 2.7.16

zshでanacondaを使えるようにするには?

インストールしたら~/.bash_profileを見にいく。

$ vim ~/.bash_profile

するとだいたいこんなのが書かれていると思う。
(おそらくバージョンによって違うのでちゃんと確認してね)

~/.bash_profile
 1 # added by Anaconda3 2018.12 installer
  2 # >>> conda init >>>
  3 # !! Contents within this block are managed by 'conda init' !!
  4 __conda_setup="$(CONDA_REPORT_ERRORS=false '/anaconda3/bin/conda' shell.bash hook 2> /dev/nu    ll)"
  5 if [ $? -eq 0 ]; then
  6     \eval "$__conda_setup"
  7 else
  8     if [ -f "/anaconda3/etc/profile.d/conda.sh" ]; then
  9         . "/anaconda3/etc/profile.d/conda.sh"
 10         CONDA_CHANGEPS1=false conda activate base
 11     else
 12         \export PATH="/anaconda3/bin:$PATH"
 13     fi
 14 fi
 15 unset __conda_setup
 16 # <<< conda init <<<

ここには「pythonを使う時はanacondaのpythonを優先して使ってくださいね!」って命令が書かれている。
これをぜーんぶコピペして、~/.zshrcの好きなところに貼り付けて、保存。

sourceコマンドで.zshrcの内容を即座に反映

$ source ~/.zshrc

バージョンを確認してみると、うまくいっている。

[Fi@FiMac] ~
$ python --version
Python 3.7.1

補足(2019/09/26)

最近この手順でセットアップをして、$ source ~/.zshrcを実行したタイミングで妙なものが出てくる。

$ python --version
Python 3.7.3
(base)

この(base)ってなんだ?

これはanacondaについてくるデフォルトのconda環境であるbaseが適用されていますよ〜というサインらしい。
先ほどzshrcに書いたコードの中には、baseをactivateする旨の記述がある。

例えば$ conda deactivateとすれば(base)は消え、python2系しか使えなくなる。

[FisMac] ~
$ conda deactivate

[FisMac] ~
$ python --version
Python 2.7.10

一方で$ conda activateとすれば(base)が現れ、python3系が使えるようになる。

[FisMac] ~
$ conda activate
(base)
[FisMac] ~
$ python --version
Python 3.7.3
(base)

詳しくはここに書いてある。
Python japan condaコマンド

他のパッケージのインストール

続いてanacondaについていないパッケージ(ぼくはpyglet, pymunk, vispy, keras,tensorflowが欲しいとする)インストールしたかったら以下のようにする。

$ pip install pyglet pymunk vispy keras tensorflow

パッケージがどこにインストールされているか見たかったらこうすればいい。

$ pip show pyglet pymunk vispy keras tensorflow

例えばtensorflowならこう表示される。

Name: tensorflow
Version: 1.13.1
Summary: TensorFlow is an open source machine learning framework for everyone.
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: [email protected]
License: Apache 2.0
Location: /anaconda3/lib/python3.7/site-packages
Requires: keras-applications, grpcio, six, protobuf, keras-preprocessing, numpy, tensorboard, tensorflow-estimator, termcolor, wheel, astor, absl-py, gast
Required-by:

このLocationが場所なのだが、全部すごくありがたい場所に入ってくれている。

おわりに

セットアップは大変。