jump to navigation

zshの基本的な使い方 3/3 「操作」編

2008-01-24 00:12 Posted by
nase
in : ソフトウェア
keyboard2_3.jpg

私自身まだまだ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風のキーバインドというのも選択可能ですが、個人的にはどうもモードの切り替えが分かりづらい印象でした。

参考ページ

ディレクトリの移動

1/3で紹介した補完機能のほかに、ディレクトリの移動支援もzshの大きな特徴のひとつとなっています。

cdいらずのディレクトリ移動

## ディレクトリ名だけで cd
setopt auto_cd

cdコマンドを使わずに、ディレクトリ名を直接入力するだけで移動できるようになります。(地味ですが重宝します)

過去に移動したディレクトリへジャンプ

## cd 時に自動で push
setopt auto_pushd
## 同じディレクトリを pushd しない
setopt pushd_ignore_dups

これらの設定をしておくと、cdで移動する際に元のディレクトリが移動履歴として記録されるようになります。(移動先が追加されるわけではない)

記録された履歴は「cd -」と入力してTABキーを押すことで一覧表示され、そこから選択して直接ジャンプすることができます。

参考ページ

小技

最後にzshならでは(?)の便利な小技を紹介。

メタキー(Altキー)との組み合わせで以下のような特種な操作が行えます。

M + h:バッファ内の最初の単語に対して run-help する

コマンドの入力中に、そのコマンドのmanを参照できます。manから戻ってくると、そのまま続きを入力できます。(入力行がそのまま維持される)

M + ?:バッファ内の最初の単語に対して which-commandする

同じくこちらは行の内容を維持したまま、コマンドのパスが表示できます。

M + q:コマンドを打っている途中に他のコマンドを実行する

いったん別のコマンドを入力することができます。コマンドを入力した後、以前の行内容が復活します。

Mキーとの組み合わせによるコマンドは、他にもいくつかあるようです。参考ページをごらんあれ。

参考ページ

おわりに

私も当初はzshにとっつきにくそうなイメージを持っていました。しかし、いざ使い始めてからはzshは「普通に便利」なツールとして使えるのではないかと感じています。

もちろん、まだこの記事では書ききれていないような面白い機能も沢山ありそうです。ちょっとした使い方を覚えて、少しずつ使いこなして行けばよいのかもしれません。

もし導入を躊躇されているようであれば、この記事がなにかしら導入のきっかけにでもなれば幸いです。

連載一覧

Comments»

no comments yet


*Comments and trackbacks will appear after it is approved by the administrator.