答案整理にコマンドを活用しています.
コマンドでは,ワイルドカードをよく使用します.「*.c」とかです.
Cのソースファイルを提出してくださいと指示していても,授業初回は,WordやRTFやPDFでアップロードされた答案が,いくらかありまして,それらを別のディレクトリに移動するのは,エクスプローラーとマウスよりも,端末でコマンド実行の方が,操作しやすいのです.移動してカレントディレクトリがテキストファイルのみになったら,詳細なコマンドは割愛しますがワイルドカードを活用しながら答案を一つのファイルにして保存し,Emacsで開いて先頭から読んで素点を付けていきます.
実際の答案ファイルをお見せするわけにもいかないので,2年向けプログラミング科目*1の初回,「Cの復習」としてダウンロードしてもらった5つのファイルを使って,挙動を見ていくことにします.「ls *.c」まで打ち込み,Enterキーは押していない状態です.
「c」の直後にカーソルがあるのを確認*2してから,Tabキーを押すと,ファイル名展開によって,カレントディレクトリで「*.c」にマッチするファイル名に置き換わります.複数あれば,空白区切りですべて表示されます.
これでEnterキーを押すと,このコマンドの字句が,実行履歴に残ります.しかし,あとで再実行したいコマンドは,ファイル名展開前のパラメータのほうというのがよくあります.
あるときに,展開直後にアンドゥしたらどうなるのだろうと思い,試してみました.bindkey -eでEmacsのキーバインドにしていて,C-/(Controlを押しながらスラッシュ)で…
展開前に戻ってくれました.「*.c」が青色で見にくいのは,個人的な設定によるものです.
ファイル名以外にも使えるでしょうか.「ls `pwd`/」を実行して,Tabキーを押すと「ls /home/takehikom/c/」に変わります.そうしてC-/で…
「ls `pwd`/」に,戻ってくれました.
ところで,「bindkey -e」というのは,~/.zshrcに記載しています.他のオプションは,次のページで整理されています.
オプションなしの「bindkey」を実行すると,キーバインド(Windowsでいうショートカットキー)の一覧が表示されました.undoが割り当てられているのは,"^X^U"と"^Xu"と"^_"でした.同様の書式だと"^/"となるのが見当たらない*3のは,それでもコントロールスラッシュが有効なのは,zshのチョビ不思議*4なのかもしれません.