新しいブログに移動しました。
9ensanのLifeHack
こちらの記事も必要に応じて新しいブログに移動させる予定です。
今後ともよろしくお願い致します。

HOME > 

zsh

最強のシェル zshの設定

  • 2009.03.03 (火) 21:09
  • 設定

UNIXでShellというと、「bash」や「tcsh」を使っている人が多いかと思いますが、俺がおススメするのは、最強のシェルその名も「zsh」です。

zshの設定内容をまとめておきますばい勉強したばいzsh最高ばい

 

と思ったけど・・・難しい勉強中です

 

.zshenv

1
2
# 文字コードの設定
export LANG=ja_JP.UTF-8

.zshrc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
###############################################
# キーバインド                                #
###############################################
# viライクキーバインド
bindkey -v
# Emacsライクキーバインド
#bindkey -e
 
###############################################
# 補完関係                                    #
###############################################
# 標準の補完設定
autoload -U compinit
compinit
 
# ディレクトリ名を入力するだけでカレントディレクトリを変更
setopt auto_cd
 
# タブキー連打で補完候補を順に表示
setopt auto_menu
 
# 自動修正機能(候補を表示)
#setopt correct
 
# 補完候補を詰めて表示
setopt list_packed
 
# 補完候補一覧でファイルの種別を識別マーク表示(ls -F の記号)
setopt list_types
 
# パスの最後に付くスラッシュを自動的に削除しない
setopt noautoremoveslash
 
# = 以降でも補完できるようにする( --prefix=/usr 等の場合)
setopt magic_equal_subst
 
# 補完候補リストの日本語を正しく表示
setopt print_eight_bit
 
# 補完の時に大文字小文字を区別しない(但し、大文字を打った場合は小文字に変換しない)
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
 
# lsコマンドの補完候補にも色付き表示
eval `dircolors`
zstyle ':completion:*:default' list-colors ${LS_COLORS}
# kill の候補にも色付き表示
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([%0-9]#)*=0=01;31'
 
###############################################
# 履歴関係                                    #
###############################################
# ヒストリー機能
HISTFILE=~/.zsh_history      # ヒストリファイルを指定
HISTSIZE=10000               # ヒストリに保存するコマンド数
SAVEHIST=10000               # ヒストリファイルに保存するコマンド数
setopt hist_ignore_all_dups  # 重複するコマンド行は古い方を削除
setopt hist_ignore_dups      # 直前と同じコマンドラインはヒストリに追加しない
setopt share_history         # コマンド履歴ファイルを共有する
setopt append_history        # 履歴を追加 (毎回 .zsh_history を作るのではなく)
setopt inc_append_history    # 履歴をインクリメンタルに追加
setopt hist_no_store         # historyコマンドは履歴に登録しない
setopt hist_reduce_blanks    # 余分な空白は詰めて記録
#setopt hist_ignore_space    # 先頭がスペースの場合、ヒストリに追加しない
 
# cd - と入力してTabキーで今までに移動したディレクトリを一覧表示
setopt auto_pushd
 
# ディレクトリスタックに重複する物は古い方を削除
setopt pushd_ignore_dups
 
# コマンド履歴の検索機能の設定
# ^[  は「エスケープ」
# viなら    Ctrl-v ESC
# Emacsなら Ctrl-q ESC
# viで編集する場合
# 上2行は Ctrl-v を押下した後、希望のキーを押下
# 下2行は「エスケープ」の後にキーの端末コードを入力
autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[OA" history-beginning-search-backward-end
bindkey "^[OB" history-beginning-search-forward-end
bindkey "^[[A" history-beginning-search-backward-end
bindkey "^[[B" history-beginning-search-forward-end
# 複数行コマンドの場合、上記の設定だと少々不都合
# tcshの様にする場合は以下のようにする
#bindkey "^P" history-beginning-search-backward-end
#bindkey "^N" history-beginning-search-forward-end
 
# インクリメンタルサーチの設定
bindkey "^R" history-incremental-search-backward
bindkey "^S" history-incremental-search-forward
 
# 全履歴の一覧を出力する
function history-all { history -E 1 }
 
###############################################
# プロンプト関係                              #
###############################################
# プロンプトに escape sequence (環境変数) を通す
setopt prompt_subst
 
# プロンプトの設定
PROMPT='%m%# '
RPROMPT=' %~'
 
# ターミナルのタイトル
case "${TERM}" in
kterm*|xterm)
    precmd() {
        echo -ne "\033]0;${USER}@${HOST%%.*}:${PWD}\007"
    }
    ;;
esac
 
###############################################
# その他                                      #
###############################################
# ファイル作成時のパーミッション
umask 022
 
setopt no_beep               # ビープ音を消す
#setopt nolistbeep           # 補完候補表示時などにビープ音を鳴らさない
 
#setopt interactive_comments # コマンドラインで # 以降をコメントとする
 
setopt numeric_glob_sort     # 辞書順ではなく数値順でソート
 
setopt no_multios            # zshのリダイレクト機能を制限する
 
unsetopt promptcr            # 改行コードで終らない出力もちゃんと出力する
#setopt ignore_eof           # Ctrl-dでログアウトしない
 
setopt no_hup                # ログアウト時にバックグラウンドジョブをkillしない
setopt no_checkjobs          # ログアウト時にバックグラウンドジョブを確認しない
setopt notify                # バックグラウンドジョブが終了したら(プロンプトの表示を待たずに)すぐに知らせる
 
#setopt rm_star_wait         # rm * を実行する前に確認
setopt rm_star_silent        # rm * を実行する前に確認しない
#setopt no_clobber           # リダイレクトで上書きを禁止
unsetopt no_clobber          # リダイレクトで上書きを許可
 
#setopt chase_links          # シンボリックリンクはリンク先のパスに変換してから実行
#setopt print_exit_value     # 戻り値が 0 以外の場合終了コードを表示
#setopt single_line_zle      # デフォルトの複数行コマンドライン編集ではなく、1行編集モードになる
 
# カーソル位置から前方削除(Ctrl-u)
bindkey '^U' backward-kill-line
 
# Ctrl-h で単語ごとに削除
bindkey "^h" backward-kill-word
# / を単語の一部とみなさない記号の環境変数から削除
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
 
#function chpwd() { ls }     # cd の後 ls も実行
 
###############################################
# エイリアス                                  #
###############################################
# 補完される前にオリジナルのコマンドまで展開してチェックする
setopt complete_aliases
 
# エイリアス
alias ls='ls --color=auto'
alias h='history -E -32'
alias ll='ls -laF --color | more'

 

 

お薦めのレンタルサーバー
広告
お薦めの書籍
HOME > 

zsh