計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

Macのターミナル環境構築

目次

Rictyのインストー

プログラミングに最適のフォントRictyをインストールする。ラテン文字にInconsolata、それ以外にMigu 1Mが使われていて、コードなどがすごく読みやすい。

https://github.com/yascentur/Rictygithub.com

Ubuntuの場合は公式サイトに書いてある方法でインストールしたが、Macの場合、Homebrewが使えれば簡単にRictyをインストール可能。
Homebrewは前もってインストールしておく。

keisanbutsuriya.hateblo.jp

Homebrewでインストー

基本的にはこのサイトを参考に書いてあるように進めればいい。ただしRictyのバージョンのところ(3.2.2 ==> 3.2.4)が新しくなっていたのでそこだけ書き換えた。

まず、automakepkg-configが必要になるので前もってインストールする。

$ brew install automake
$ brew install pkg-config

あとは数行のスクリプトでインストールできる。出力結果などは省略

$ brew tap sanemat/font
$ brew install Caskroom/cask/xquartz
$ brew install ricty

$ cp -f /usr/local/Cellar/ricty/3.2.4/share/fonts/Ricty*.ttf ~/Library/Fonts/
$fc-cache -vf

最後のfc-cacheのところはエラーが出たうまくいったかは知らない。でもRictyはインストールできた。

iTerm2

インストー

ターミナルはデフォルトのものよりも使いやすいと評判のiTerm2を使う。

www.iterm2.com

公式サイトからダウンロードして圧縮ファイルを解凍、Applicationsフォルダに入れるだけでいい。

設定

変えたところのメモ

すべてのウィンドウが閉じれば終了するようにする

iTerm ==> Preferences ==> General ==> Closing
Quit when all windows are closedにチェック。

zshを使う

iTerm ==> Preferences ==> Profiles ==> General ==> Command
Command:のところにチェック。zshと入力。システムのログインシェルを変えなくてもアプリで変更をできる。

———- 2017/06/21 追記 ———-
Emacsのexec-path-from-shellを使う時など、ログインシェルを変えなければいけない状況が出てきた。ログインシェルをzshに変えておく

シェルのPATHをEmacsに引き継がせる - 計算物理屋の研究備忘録

———- 追記終了 ———-

新しいウィンドウ、タブ、ペインを開いた時にディレクトリを継続

iTerm ==> Preferences ==> Profiles ==> General ==> Working directory
Reuse previous sesion's directoryのところにチェック。ホームディレクトリから始まらずにカレントディレクリを継続して新しいペインなどを開くことができる

Tango Darkのカラースキームを使う

iTerm ==> Preferences ==> Profiles ==> Colors ==> Load Presets
一度Tango Darkを選択すれば設定される。カラーパレットがTango Darkに変わるので確認。

フォント

iTerm ==> Preferences ==> Profiles ==> Text
Regular FontもNon-ASCII FontもRictyの16ptに変えた。

Double-Width Characters:Treat ambiguous-width characters as double widthにも一応チェックを入れておく。Rictyだとチェック入れなくてもいいかも。

ウィンドウを透過する

iTerm ==> Preferences ==> Profiles ==> Window ==> Window Appearance
Transparencyを好きなように設定

スクロールバックできる行数を増やす

iTerm ==> Preferences ==> Profiles ==> Terminal ==> Scrollback Buffer
Scrollback Lines:をとりあえず10000行に。

SSHの接続が切れないようにする

iTerm ==> Preferences ==> Profiles ==> Session
When idel, send ASCII code:にチェックを入れる。値は0から20の好きな数字でいいみたいなので、デフォルトの0でいい。
iterm2では~/.ssh/config

optionキーを+Escとして扱う

iTerm ==> Preferences ==> Profiles ==> Keys
Left option key acts as:のところを+EscRight option key acts as:にチェック。これをやらないとEmacsで困る。

自分の設定ファイル(.dotfiles)をgitでcloneする

自分のレポジトリにある設定ファイルを取ってくる。ホームディレクトリで以下のコマンド。

$ git clone ユーザー名@ホスト名:repository/dotfiles.git .dotfiles
$ cd .dotfiles
$ git submodule init
$ git submodule update
$ ./link_dotfiles.sh

最後のシェルスクリプト実行でホームディレクトリに色々設定ファイルのシンボリックリンクを貼るようにしている。

zshMac用の設定

Macのデフォルトのパス設定は/etc/zprofileに書いてあって、/usr/libexec/path_helper -sを実行して設定している。

/etc/zprofile

# system-wide environment settings for zsh(1)
if [ -x /usr/libexec/path_helper ]; then
        eval `/usr/libexec/path_helper -s`
fi

これで/usr/local/binなどにpathが通る。

しかし、自前の.zshenvを用意すると/etc/zprofileを読み込んでくれなくなるので、上記スクリプトを.zshenvなどにコピペしておくと良い。

MacLinuxWindowsとホスト毎に違う設定を書きたいので、.zshenv_$HOSTといったホスト毎のzshenvファイルを用意して.zshenvから読み込むようにしている。

.zshenv

export ZDOTDIR=~/.dotfiles/zsh/
#----- ホストごとの環境設定があれば読み込む
[ -f $ZDOTDIR/.zshenv_$HOST ] && source $ZDOTDIR/.zshenv_$HOST

ちなみにここの設定では、ZDOTDIRを変更して~/.dotfiles/zsh/に置いてある.zshrcなどが読み込まれるようにしている。

coreutilsのインストー

MacBSD系なので、LinuxGNUコマンドとは少しオプションなどで挙動が違う。例えば、ls --color=autoMacではエラーが出る。GNUCoreutilsをHomebrewでインストールしてコマンドを置き換える。

参考サイトはここ。zshのpathの設定なども書いてある。

qiita.com

Homebrewでインストー

$ brew install coreutils

/usr/local/opt/coreutils/bin/glsgmvなど頭にgがついたコマンドがインストールされる。/usr/local/opt/coreutils/libexec/gnubin/gがついてないシンボリックリンクがある。ここにBSD系のオリジナルのコマンドよりも早く実行されるようにpathを通せば、lsと打つとGNUのlsが実行されるようになる。

pathを通す

上のzshの設定で書いたように、例えば.zshenv_MacBookPro.local(ホスト名がMacBookPro.localの場合)などの.zshenv_$HOSTに対応するファイルを準備して、設定する。

#----- from /etc/zprofile
# system-wide environment settings for zsh(1)
if [ -x /usr/libexec/path_helper ]; then
        eval `/usr/libexec/path_helper -s`
fi

#----- coreutilsのためのpath
export PATH=/usr/local/opt/coreutils/libexec/gnubin:${PATH}
export MANPATH=/usr/local/opt/coreutils/libexec/gnuman:${MANPATH}

sshでよく接続するサーバーに簡単に接続できるようにする

やり方はこち

keisanbutsuriya.hateblo.jp

rmでゴミ箱に移動するようにする

rmtrashをインストールしてrmに置き換える。

参考サイト

notebook-t-0731.hatenablog.com

rmtrashのインストー

Homebrewでインストールするだけ

$ brew install rmtrash

エイリアス

.zshrcなどに書いておく

alias rm='rmtrash'

pecoのインストー

別記事

percolからpecoへ乗り換え - 計算物理屋の研究備忘録