done is better than perfect

自分が学んだことや、作成したプログラムの記事を書きます。すべての記載は他に定める場合を除き個人的なものです。

bashからzshに乗り換えたった

zsh始めました。以前bash-completionを入れましたが、やっぱり重いので…… Macにはデフォルトで入ってるみたいですが、いつもの如くhomebrewで最新版を入れます。

% brew install zsh

入れた後はchshコマンドでログインシェルを変更します。

% chsh

vi(m)で設定ファイルが開くと思うので、Shell: の部分を/usr/local/bin/zshにします。

1 # Changing user information for masatana.
2 # Use "passwd" to change the password.
3 ##
4 # Open Directory: /Local/Default
5 ##
6 Shell: /usr/local/bin/zsh    <---  ここを変更!
7 Full Name: 逕ー荳ュ 豁」豬ゥ
8 Office Location:
9 Office Phone:
10 Home Phone:

ターミナルを再起動します。以下のコマンドで起動しているシェルが確認できます。

% echo $SHELL
/usr/local/bin/zsh

GUIで変更したい場合はこちらのサイトが参考になるかと思います。 今の自分の.zshrcはこちらです。漢のzshを参考にしました。あまり細かい設定はまだしてませんが、これから追記していきたいです。

# zshのTAB補完を有効にする
autoload -U compinit && compinit

# 日本語UTF-8環境にする
export LANG=ja_JP.UTF-8

# zshのコマンド履歴を管理する
HISTFILE=~/.zsh_history
HISTSIZE=100000
SAVEHIST=100000
setopt hist_ignore_dups # コマンド履歴が重複しないようにする
setopt share_history # コマンド履歴を共有する

autoload history-search-end
zle -N history-beginnig-search-backward-end history-search-end
zle -N history-beginnig-search-forward-end history-search-end
bindkey "^P" history-beginnig-search-backward-end
bindkey "^N" history-beginnig-search-forward-end

# PROMPTの表示を変える e.g. /user/home
PROMPT="%/%% "
PROMPT2="%_%% "
SPROMPT="%r is correct? [n,y,a,e]: "
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad

# その他オプション
setopt auto_cd # ディレクトリ名のみで移動できる
setopt auto_pushd # これまでに移動したディレクトリが一覧表示される
setopt correct # 自動修正機能
setopt nolistbeep # 音を鳴らさない

bindkey -vでviキーバインドにもなるらしいですが、自分は設定しませんでした。コマンド打つ際にはC-aなどのショートカットに慣れていたというのもありますが、一番の問題点はモードの切替。 自分はVimではC-cをESCとしてnnoremapしているのですが、コマンドを打つ際にC-cではKeyboardInterruptなってしまい、C-[でないと行けない模様。 VimのほうをC-[に合わせたほうが良いのかなと思いつつ、今はzshではviバインドはしないことにしました。 ちなみに.zshrcは私のgithubでdotfilesの一つとして管理しています。githubで.vimrcなどのドットファイルを管理するのは色んな方がやられているようですが、中々便利です。