テキストクリッピングとコピーバッファ(教員のための Mac Tips:1)

背景

私が担当している情報処理Iという科目では、学生が毎週 moodle に課題を提出します。この課題は学生の理解度を見るもので、間違いがある場合には学生にフィードバックして、再提出を求めるものです。クラスには40人ほどの学生がいますから、これらに評価を付けていくのもかなりの労力になります。単に点数を付けるだけであればそれほどではありませんが、正しくできている学生も含め全員にフィードバックのコメントを書いているので、当初は1時間以上かかることもザラでした。

とはいえ基礎科目ですので、毎年やることは一緒です。各課題の評価ポイントはわかっていますし、この課題で学生が間違えるポイントもだいたい同じです。これらは定型文を作っておいてそれをコピーするというのが、時間節約の肝になります。エディタに定型文をまとめておくというのが普通のやり方だと思いますが、ここでテキストクリッピング、および二つのコピーバッファを活用する Mac ならではの Tips を紹介します。

テキストクリッピング

日本語の wikipedia には書いてなかったので、英語版のWikipediaより。

textClipping is an extension used by Macintosh computers for strings of text, used since Mac OS 9 was released. When a string of text is selected and dragged to the desktop of a Macintosh computer, the computer automatically converts it into a .textClipping file. The icon formed can conveniently be dragged to any text box to replicate the exact text, including its formatting.

もう少し前からかと思っていましたが、Mac OS 9 からのようです。画面上でコピー可能な文字列(マウスで範囲選択できるもの)はその選択された文字列を Finder にドラッグ&ドロップすることで、テキストクリッピングファイルにすることができます。この時のファイル名はドラッグされた文字列の先頭部分となり,それに .textClipping という拡張子が付きます。このクリッピングファイルは文字入力ができるところ(エディタやブラウザの入力フォームなど)にドラッグ&ドロップすることで,簡単に文字列をコピーすることができます。

Mavericks からは、新規作成した .textClipping ファイルの拡張子を表示しない状態で保存されるようになりました。そのため、Finder 上にはクリッピングした文字列がファイル名として並ぶ形になり、かなり見やすくなりました。ちょっとしたことですが、いい改良ですね。

二つのコピーバッファ

Mac OS X は基となった NeXTSTEP の影響もあり、テキストフィールドでは Emacsキーバインドが使えます。Emacs では ctrl-k (kill line) と ctrl-y (yank) を使ったカット&ペーストが行えます。コピー&ペーストしたい場合は ctrl-y をその場で押して戻してから、コピー先で再度 ctrl-y を押します。連続した ctrl-k は一つの yank バッファに結合されるので、ctrl-k を連打、ctrl-y、コピーしたい先で ctrl-y という一連の手順が手に馴染んでいる人も多いと思います。なお,通常の Emacs では行末までが切り取られますが,Mac の場合には選択されたテキストがある場合には動作が異なり,Cmd-X によるカットと同じように選択部分が切り取られる動作になります.

この yank バッファですが、通常の Cmd-C、Cmd-V によるコピー&ペーストで使うバッファとは異なります。すなわち、テキストに限定すれば Mac OS X は二つのコピーバッファを持っていることになります。

具体的な使用方法

上記の二つの機能を使った評価入力方法を紹介します。下準備として、課題ごとにテキストクリッピングを保存するフォルダを作っておきます。後は以下の指針で作業を行います。

  • 学生への新規のコメントはフィードバックテキストフィールドに書き込みます。
  • このフィードバックは項目ごと(行ごと)に先ほど作成したフォルダに落としておきます。
  • 一番多く書かれるであろう正解のコメントは、ctrl-k、ctrl-y として yank バッファに保存しておきます。
  • その後の正解学生へのコメントは ctrl-y で yank します。
  • その他のコメントは、テキストクリッピングで流し込みます。複数個の項目に該当する学生については,複数のテキストクリッピングを選んでまとめて流し込みます。
  • 中には放課後に一緒に相談しながら提出する学生達もおります。何故わかるかというと、提出したプログラムがまったく同じ箇所で間違えているからです。このような場合には、一人目の学生のテキストフィールドを Cmd-C でコピーした後に、Cmd-V でペーストします。このようにしてコピーバッファを使ってしまっても、正解者用の yank バッファはちゃんと残っています。

こんな感じで一つの課題にかかる時間は 20 分程度にまで減少しました。これには別の理由もありますが、それはまた次の機会に。