時間と労力を節約するShellの小さなテクニック


詳細
シェルとよく戦っているあなたも、次のような状況によく遭遇しているのではないでしょうか.
1$ mv /somewhere/file /your/folder/
2$ vi /your/folder/file

特定のディレクトリにファイルを保存し、表示/編集を開始するには
1$ cp /somewhere/foo.c /somewhere/foo.c.orig
2$ vi /somewhere/foo.c

ファイルをバックアップしてからドラムを打つか
1$ tar zcvf archives.tgz /somewhere/folder /and/somewhere/file1 /and/somewhere/file2
2$ scp archives.tgz [email protected]:~/blabla/

あるいは、ディレクトリ/ファイルをパッケージ化してアップロードするなどします.これらのシナリオでは、2番目のコマンドを入力すると、次のようにしてみてください.
1$ mv /somewhere/file /your/folder/
2$ vi Alt-.file

Altを押してもう一度押すと、前のコマンドの最後のパラメータが自動的に入力されていることに気づき、fileを入力して取り外します.
1$ cp /somewhere/foo.c /somewhere/foo.c.orig
2$ vi Alt-1+Alt-.

まずAltを押してから数字キー1を押して、Altキーを緩めないようにしてから、点を押して、前のコマンドの最初のパラメータを補充するのに役立ちます.
1$ tar zcvf archives.tgz /somewhere/folder /and/somewhere/file1 /and/somewhere/file2
2$ scp Alt-2+Alt-. [email protected]:~/blabla/

まずAltを押してから数字キー2を押して、Altキーが緩まないようにしてから、点を押して、前のコマンドの2番目のパラメータを自動的に補完します.
zshを使う学生は設定して、5つで十分だと思います.
bindkey "^[1" digit-argument
bindkey "^[2" digit-argument
bindkey "^[3" digit-argument
bindkey "^[4" digit-argument
bindkey "^[5" digit-argument
bindkey "^[-" neg-argument

これらの数値パラメータを使用する場合、bashは左から右へ正数であり、zshは後から前へ逆数である.すなわち
$ touch 1a 2b 3c 4d 5e

bashのAlt−1は1 a,Alt−2は2 bである.zshのAlt−1は5 e,Alt−2は4 d,Alt−1(Alt−負1)は1 a,Alt−2(Alt−負2)は2 bであった.