zsh
Contents
シェル(bash)と共通の部分についてはSanRin舎 » UNIX/Linux参照。
インストール
inst_zsh.sh at master from tmsanrinsha/dotfiles – GitHub参照。
コマンドラインでの操作
Emacsのキーバインド(bindkey -e)に設定している場合。
| Ctrl+f | → |
| Ctrl+b | ← |
| Ctrl+p | ↑ |
| Ctrl+n | ↓ |
| Ctrl+a | カーソルを先頭へ |
| Ctrl+e | カーソルを末尾へ |
| M-f | 次の単語へ移動 |
| M-b | 前の単語へ移動 |
| Ctrl+d | DEL |
| Ctrl+h | BS |
| Ctrl+k | 現在のカーソル位置から右側の文字を全て削除 |
| Ctrl+u | 一行削除/td> |
| M-d | 次の単語を削除 |
| Ctrl+w | 前の単語を削除 |
| Ctrl+s | コマンドが出力する画面出力を一時停止 |
| Ctrl+q | コマンドが出力する画面出力の一時停止を解除 |
| Ctrl+l | 画面をクリア |
| Ctrl+c | プログラムの実行を中止 |
| Ctrl+z | プログラムの実行を一時停止 |
| fg | foreground。一時停止たプログラムの再開 |
| M-. | 直前のコメンドの最後の引数を挿入 |
| M-Enter | コマンドを実行せずに改行する |
M-*はEscまたはCtrl+[をおして*を押す。もしくはAltをしながら*を押す。
Tera TermでAltキーを使うためには「設定」-「キーボード」で「Meta キー」にチェックをいれる。しかしチェックをいれるとAlt+Nで「新しい接続」とかが効かなくなっちゃう。それを解消するやり方はこちら。
ちなみにTera Termで上(下)にスクロールしたい時ははCtrl+↑(↓)。
zshの設定
- .zshrc at master from tmsanrinsha/dotfiles - GitHub
- .zashrc at master from tmsanrinsha/dotfiles - GitHub
- おすすめzsh設定 - ククログ(2011-09-05)
- .zshenvの設定 - nikuyoshiのブログ - aliasに$@
補完
ディレクトリ関連
autojump
ディレクトリの移動が楽になりそうなプラグイン。
setopt auto_pushd
autoload -U compinit compinit setopt auto_pushd
と設定して
cd -[tab]
と打つとディレクトリの履歴が表示される。さらに表示された番号を打ってEnterでそのディレクトリに移動できる。
しかし、その表示されるディレクトリの順序は古いの方が上になっている。
cd +[tab]
と打てば新しいほうが上になるが、-の方が補完な気がするので以下のようににして+と-の役割を逆転させた。
setopt auto_pushd # cd -[tab]とcd +[tab]の役割を逆にする setopt pushd_minus
zshでcd先をディレクトリスタックから選択する順番 @ 7bitを参考にした。
SanRin舎 » ディレクトリスタックを端末間で共有したり、保存するも参照。
ディレクトリのブックマーク
プロンプト
SPRONPTについては漢のzsh (2) 取りあえず、プロンプトを整えておく。カッコつけたいからね | エンタープライズ | マイナビニュースを参考にした。
漢のzshにおいてプロンプトの^[はCtrl+V [Esc]で入力するとあるが、$'\e'で置き換えることができる(こっちの方がコピペできてよい)。
「C-zでサスペンドしたとき(18)以外のエラー終了時に%#を赤く表示」の部分はzshで究極のオペレーションを:第3回 zsh使いこなしポイント即効編|gihyo.jp … 技術評論社を参考にした。
ホスト名でプロンプトの色を変える部分は[Linux] ホスト名毎にプロンプトの色を変更 : Edo::World::Blogを参考にして作った
zshのコマンド
| Esc+h | sudoなどのコマンドを打って、Esc+hと打つとsudoのマニュアルを見れる。戻るとsudoまでうたれた状態でカーソル位置も同じ |
| Esc+q | コマンドを途中まで打った状態でEsc-qと打つと、そのコマンドをスタックに入れてコマンドラインが空になる。何かコマンドを打つと、スタックから途中まで打ったコマンドが降りてくる。 |
| **/ | カレントディレクトリ以下を再帰的に検索してくれる。例えばrm **/*.(log|aux)(.m+3)で「カレントディレクトリ以下にあるすべての*.log または *.aux という通常ファイルのうち 4日以上アクセスしていないものは全部消す」ことができる(zshで究極のオペレーションを:第1回 zshで広がる世界|gihyo.jp … 技術評論社) |
| history [n] | n番目のコマンド履歴からコマンド履歴を表示 |
glob
zshで究極のオペレーションを:第1回 zshで広がる世界|gihyo.jp … 技術評論社に載っている例
% find . '(' -name '*.log' -o -name '*.aux' ')' -a \
-type f -a -atime +3 -exec rm '{}' ';'
% rm **/*.(log|aux)(.m+3)
UNIX今日の技 - UNIX今日の技/zshに乗ってる例(他にもたくさん)
% less *.txt~memo.txt # memo.txt 以外の *.txt にマッチ % rm *~POSCAR*~INCAR~KPOINTS~POTCAR # vaspの入力ファイル以外の出力ファイルを全て消す
- 【コラム】漢のzsh (13) タブキーは最強だ - ファイルグロブもサクっと展開 | エンタープライズ | マイコミジャーナル - Ctrl+x gも便利
- zsh - 良いとこ取りをしたシェル - 会津大学UNIXウィキ
- zsh覚え書き - テックノート@ama-ch
- Zsh Tips, Tricks and Examples by zzapper
プロセス置換
zshのオプション
- man zshoptions
zsh --version- zshのバージョンを調べる
autoloadのオプション
- 雑いブログ:zsh の autoload のオプションに関して - livedoor Blog(ブログ)
- 雑いブログ:zsh autoload のオプション ("-z" 編) - livedoor Blog(ブログ)
- 雑いブログ:zsh autoload のオプションその3 - livedoor Blog(ブログ)
Screen
- screenの設定についてはSanRin舎 » screen参照

