1. d-dai

    Posted

    d-dai
Changes in title
+.zshrcの設定例(設定内容の説明コメント付き)
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,157 @@
+zshの設定ファイルである、 `.zshrc` の設定例です。
+標準シェルである `bash` では出来ない機能をいくつか入れています。
+
+# 設定の特徴
+- `cd` を実行した後、自動で `ls -ltr` を実行
+- `cd` で自動で `pushd`される
+- `history` コマンドで時刻も表示
+- Ctrl+rでインクリメンタルサーチ、Ctrl+sで逆順サーチ
+- プロンプトに現在時刻を表示
+- gitのブランチ名をプロンプト右に表示
+- cdを省略して、ディレクトリ名だけ入力しても移動が可能
+- Tabを押して補完を表示したら、左右キーで候補選択可能
+
+# 設定内容
+```
+# 日本語を使用
+export LANG=ja_JP.UTF-8
+
+# パスを追加したい場合
+export PATH="$HOME/bin:$PATH"
+
+# 色を使用
+autoload -Uz colors
+colors
+
+# 補完
+autoload -Uz compinit
+compinit
+
+# emacsキーバインド
+bindkey -e
+
+# 他のターミナルとヒストリーを共有
+setopt share_history
+
+# ヒストリーに重複を表示しない
+setopt histignorealldups
+
+HISTFILE=~/.zsh_history
+HISTSIZE=10000
+SAVEHIST=10000
+
+# cdコマンドを省略して、ディレクトリ名のみの入力で移動
+setopt auto_cd
+
+# 自動でpushdを実行
+setopt auto_pushd
+
+# pushdから重複を削除
+setopt pushd_ignore_dups
+
+# コマンドミスを修正
+setopt correct
+
+
+# グローバルエイリアス
+alias -g L='| less'
+alias -g H='| head'
+alias -g G='| grep'
+alias -g GI='| grep -ri'
+
+
+# エイリアス
+alias lst='ls -ltr --color=auto'
+alias l='ls -ltr --color=auto'
+alias la='ls -la --color=auto'
+alias ll='ls -l --color=auto'
+alias so='source'
+alias v='vim'
+alias vi='vim'
+alias vz='vim ~/.zshrc'
+alias c='cdr'
+# historyに日付を表示
+alias h='fc -lt '%F %T' 1'
+alias cp='cp -i'
+alias rm='rm -i'
+alias mkdir='mkdir -p'
+alias ..='c ../'
+alias back='pushd'
+alias diff='diff -U1'
+
+# backspace,deleteキーを使えるように
+stty erase ^H
+bindkey "^[[3~" delete-char
+
+# cdの後にlsを実行
+chpwd() { ls -ltr --color=auto }
+
+# どこからでも参照できるディレクトリパス
+cdpath=(~)
+
+# 区切り文字の設定
+autoload -Uz select-word-style
+select-word-style default
+zstyle ':zle:*' word-chars "_-./;@"
+zstyle ':zle:*' word-style unspecified
+
+# Ctrl+sのロック, Ctrl+qのロック解除を無効にする
+setopt no_flow_control
+
+# プロンプトを2行で表示、時刻を表示
+PROMPT="%(?.%{${fg[green]}%}.%{${fg[red]}%})%n${reset_color}@${fg[blue]}%m${reset_color}(%*%) %~
+%# "
+
+# 補完後、メニュー選択モードになり左右キーで移動が出来る
+zstyle ':completion:*:default' menu select=2
+
+# 補完で大文字にもマッチ
+zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
+
+# Ctrl+rでヒストリーのインクリメンタルサーチ、Ctrl+sで逆順
+bindkey '^r' history-incremental-pattern-search-backward
+bindkey '^s' history-incremental-pattern-search-forward
+
+# コマンドを途中まで入力後、historyから絞り込み
+# 例 ls まで打ってCtrl+pでlsコマンドをさかのぼる、Ctrl+bで逆順
+autoload -Uz history-search-end
+zle -N history-beginning-search-backward-end history-search-end
+zle -N history-beginning-search-forward-end history-search-end
+bindkey "^p" history-beginning-search-backward-end
+bindkey "^b" history-beginning-search-forward-end
+
+# cdrコマンドを有効 ログアウトしても有効なディレクトリ履歴
+# cdr タブでリストを表示
+autoload -Uz add-zsh-hook
+autoload -Uz chpwd_recent_dirs cdr
+add-zsh-hook chpwd chpwd_recent_dirs
+# cdrコマンドで履歴にないディレクトリにも移動可能に
+zstyle ":chpwd:*" recent-dirs-default true
+
+# 複数ファイルのmv 例 zmv *.txt *.txt.bk
+autoload -Uz zmv
+alias zmv='noglob zmv -W'
+
+# mkdirとcdを同時実行
+function mkcd() {
+ if [[ -d $1 ]]; then
+ echo "$1 already exists!"
+ cd $1
+ else
+ mkdir -p $1 && cd $1
+ fi
+}
+
+# git設定
+RPROMPT="%{${fg[blue]}%}[%~]%{${reset_color}%}"
+autoload -Uz vcs_info
+setopt prompt_subst
+zstyle ':vcs_info:git:*' check-for-changes true
+zstyle ':vcs_info:git:*' stagedstr "%F{yellow}!"
+zstyle ':vcs_info:git:*' unstagedstr "%F{red}+"
+zstyle ':vcs_info:*' formats "%F{green}%c%u[%b]%f"
+zstyle ':vcs_info:*' actionformats '[%b|%a]'
+precmd () { vcs_info }
+RPROMPT=$RPROMPT'${vcs_info_msg_0_}'
+
+```