私自身まだまだzshを使い始めたばかりでよく分かっていない部分もありますが、補完以外の操作まわりについて書いておきます。(補完については1/3で書いています)
少しでもzshの魅力が伝わればよいのですが。
Emacs/Viライクなキーバインド
「bindkey -e」を設定しておくと、コマンドライン上でEmacs風のキーバインドが使えます。(デフォルトでも有効になっています)
とりあえずよく使いそうなショートカットキーは以下の通り。
Ctrl-A : 行頭へジャンプ
Ctrl-E : 行末へジャンプ
Ctrl-U : 一行削除
Ctrl-B : ←キー
Ctrl-F : →キー
Ctrl-P : ↑キー(履歴を戻る)
Ctrl-N : ↓キー(履歴を進む)
Ctrl-D : Deleteキー
Ctrl-H : BackSpaceキー
Ctrl-L : クリアスクリーン
「bindkey -v」でVi風のキーバインドというのも選択可能ですが、個人的にはどうもモードの切り替えが分かりづらい印象でした。
参考ページ
- 漢のzsh (4) コマンド履歴の検索~EmacsとVi、どっちも設定できるぜzsh キーボードショートカットについて詳しくはこちらのページでまとめられています。
ディレクトリの移動
1/3で紹介した補完機能のほかに、ディレクトリの移動支援もzshの大きな特徴のひとつとなっています。
cdいらずのディレクトリ移動
## ディレクトリ名だけで cd
setopt auto_cd
cdコマンドを使わずに、ディレクトリ名を直接入力するだけで移動できるようになります。(地味ですが重宝します)
過去に移動したディレクトリへジャンプ
## cd 時に自動で push
setopt auto_pushd
## 同じディレクトリを pushd しない
setopt pushd_ignore_dups
これらの設定をしておくと、cdで移動する際に元のディレクトリが移動履歴として記録されるようになります。(移動先が追加されるわけではない)
記録された履歴は「cd -」と入力してTABキーを押すことで一覧表示され、そこから選択して直接ジャンプすることができます。
参考ページ
- 漢のzsh (5) 「あーっ!」というそのときのために - 備えあれば憂いなしの設定集
ディレクトリ周りの解説はこちらから。
小技
最後にzshならでは(?)の便利な小技を紹介。
メタキー(Altキー)との組み合わせで以下のような特種な操作が行えます。
M + h:バッファ内の最初の単語に対して run-help する
コマンドの入力中に、そのコマンドのmanを参照できます。manから戻ってくると、そのまま続きを入力できます。(入力行がそのまま維持される)
M + ?:バッファ内の最初の単語に対して which-commandする
同じくこちらは行の内容を維持したまま、コマンドのパスが表示できます。
M + q:コマンドを打っている途中に他のコマンドを実行する
いったん別のコマンドを入力することができます。コマンドを入力した後、以前の行内容が復活します。
Mキーとの組み合わせによるコマンドは、他にもいくつかあるようです。参考ページをごらんあれ。
参考ページ
おわりに
私も当初はzshにとっつきにくそうなイメージを持っていました。しかし、いざ使い始めてからはzshは「普通に便利」なツールとして使えるのではないかと感じています。
もちろん、まだこの記事では書ききれていないような面白い機能も沢山ありそうです。ちょっとした使い方を覚えて、少しずつ使いこなして行けばよいのかもしれません。
もし導入を躊躇されているようであれば、この記事がなにかしら導入のきっかけにでもなれば幸いです。
連載一覧
- ナレッジエース - zshの基本的な使い方 1/3 「導入~基本設定」編
- ナレッジエース - zshの基本的な使い方 2/3 「bash風プロンプト」編
- ナレッジエース - zshの基本的な使い方 3/3 「操作」編
Comments»
no comments yet