SmalltalkHichhikersGuide より分家。
ParagraphEditorの定義をちょっといじって、Emacsライクなエディタ操作を少し だけサポートするものを書いてみました。
EmacsLikeKeys.lzh ... download!
Squeak-3.1a で書きましたが、多分 2.x でも動くと思います。
EmacsLikeKeys.st をファイルインすると、Goodies-EmacsLike というカテゴリに EmacsLikeKeys というクラスが追加され、 ParagraphEditor クラスへの変更が有 効になります。 EmacsLikeKeys クラスを削除すると、元に戻ります。また、
EmacsLikeKeys install "有効化" EmacsLikeKeys uninstall "無効化"というメッセージ式でもコントロールできます。
このシステムクラスへの変更を行う部分は、青木淳さんがSML:1522 で紹介している MouseButtonModifier から、
class initialize class install class obsolete class uninstall class installModificationInClass:protocol:code: class uninstallModificationInClass:selector:をほとんどそのまま真似して使わせて頂きました。
できることは、
C-f (カーソルを右へ) C-b (カーソルを左へ) C-n (カーソルを下へ) C-p (カーソルを上へ) C-e (カーソルを行末へ) C-a (カーソルを行頭へ) C-h (カーソルの一文字左を削除) C-d (カーソルの一文字右を削除) C-w (カット) M-w (コピー) C-y (ペースト)といったところです。マーク/リージョンの操作は、やりたかったのですが大が かりになってしまうのでまだ手をつけかねています。