![catatsuy](http://www.catatsuy.org/img/catatsuy.svg)
catatsuy
- catatsuy(KANEKO Tatsuya)
- 東工大
- はてなインターン 2012
- ピクシブアルバイト
注:特にネタ要素は仕込んでません
- パソコンを初期化しても慣れた環境にすぐ復旧できる
- 複数台のパソコンやサーバー間で設定を共有できる
- Dropbox
- バージョン管理が貧弱
- サーバーなど入れられない環境もある
- Github
- バージョン管理ができる
- 公開リポジトリで作ればサーバーなどにも楽々ダウンロード!
- 頻繁に更新すれば Github の Activty が貯まる!!
- ファイルを 1 つのディレクトリにまとめる
- Linux/Mac 環境でどちらでも使えるようにしたい
- サーバーなど様々な用途にも対応できるようにしたい
~/.zshenv
に
export ZDOTDIR=$HOME/.zsh
とすれば ~/.zsh/.zshrc
を読み込みに行くので ~/.zsh/
ディレクトリに設定をまとめて Git 管理にする
case ${OSTYPE} in
darwin*)
# ここに Mac 向けの設定
;;
linux*)
# ここに Linux 向けの設定
;;
esac
とやるのも良いが少し煩雑
[ -f $ZDOTDIR/.zshrc_`uname` ] && . $ZDOTDIR/.zshrc_`uname`
として .zshrc_Darwin
, .zshrc_Linux
に依存のコードを書くと OS 依存のコードのファイルに分割できる
- ファイルがなければ右式は評価されないのでエラーは出ない
- FreeBSD など全部用意しなくても大丈夫
PC 毎に依存する適当なファイルが存在する可能性が高い
.zshrc_local
を .gitignore
に追加して
[ -f $ZDOTDIR/.zshrc_local ] && . $ZDOTDIR/.zshrc_local
と .zshrc
に書くと端末依存のコードを書ける
.zshrc_local
が存在しなくてもエラーにはならない.zshrc_local.tmp
とかをコミットしておき,手元でmv
する
注:.zshrc_local
を git
でコミットしないこと
if [ -d ${HOME}/.rbenv ]; then
export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init -)"
. ~/.rbenv/completions/rbenv.zsh
fi
- 色んな環境間で共有するためにディレクトリの有無で分岐する
~/.rbenv
ディレクトリが存在しない限り動かない
- Mac の
ls
は BSD 由来で GNU のものとはオプションが異なる - Linux なら入っているコマンドが Mac ではなかったりする
- coreutils をインストールすれば解消する
- デフォルトのを上書きしないようにプレフィックスに
g
が付く(ls
はgls
など) - プレフィックスを除くには
PATH
を通す必要がある brew info coreutils
をよく読む
- デフォルトのを上書きしないようにプレフィックスに
if [ -d /usr/local/opt/coreutils/libexec/gnubin ]; then
export PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH
export MANPATH=/usr/local/opt/coreutils/libexec/gnuman:$MANPATH
alias ls='ls --color=auto'
else
export LSCOLORS=gxfxcxdxbxegedabagacad
alias ls='ls -G'
fi
- coreutils が入っていることを前提にしない
- coreutils が入っていなかったら
ls
に簡単に色だけつける
LS_COLORS
を設定する(LSCOLORS
とは別物).zshrc
に書くと煩雑になるので~/.dircolors
として外部ファイルで定義する- seebi/dircolors-solarized が個人的おすすめ
- GNU 由来なので Mac は coreutils 必須
- ついでにディレクトリを補完するときにも適用する
## dircolors
if [[ -f ~/.dircolors && -x `which dircolors` ]]; then
eval `dircolors ~/.dircolors`
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
fi
Github で
この辺りおすすめです
- Google の Shell Style Guide ではインデントがスペース 2 つ
- というか Google は基本インデントはスペース 2 つ
- http://google-styleguide.googlecode.com/svn/trunk/shell.xml
- .zshrc* では shell-script のシンタックスハイライト効かないかも…
;; indent
(add-hook 'sh-mode-hook '(lambda () (interactive)
(setq sh-basic-offset 2 sh-indentation 2)))
;; .zshrc* を shell-script-mode に
(add-to-list 'auto-mode-alist
'("\\.zshrc" . shell-script-mode))