Medleyを使ってみよう(2) — #:g1

Posted 2015-07-15 05:06:39 GMT

 Medleyを使ってみようシリーズの第二回、前回は4年半前でした。
過去のmedley関係の記事は、こんな感じです。

Medleyとは

Medleyとは、Interlisp-Dが仮想マシン化したものです。
LinuxやIRIX(MIPS)、Solaris(SPARC)等で動くようですが、自分は、古いLinuxで動かしています。

Metaキーはいずこ

Medleyを触って早10年位になります。特に何もしてないのですが、Metaキーがどこに割り当てられているかが分からず、エディタでは苦労して入力していました。
便利機能の殆どがMetaキーに割り当てられていて、Metaキーが使えないとマウスでポチポチやって文字を入力する位しかないのです。
これではいかんと思い、MetaキーがXではどこに割り当てられることになるのか探ってみたところMedleyではAlt_Lに割り当てられることが判りました。

xmodmapで

clear    mod1
keycode  キー番号 = Alt_L
add     mod1    = Alt_L

のようにすればOKですが、自分は、左Metaキーには、Meta_Lを割り当てているため、Alt_Lを有効にするために、Xnestで別ディスプレイを開いて設定しています。
vncでできると良いのですが、どうもAlt_Lがどんどん別の場所にずれて行くという謎現象が解決できず。

SEditのコマンド

SEditでのカーソル移動と範囲選択

カーソルの移動は基本的にマウスでしかできません。キー操作も用意されていそうなものですがマニュアルを眺めても見付けられず…。
選択ですが、左クリックをすると範囲が外側に伸びてゆきます。
左クリックだと1つの式しか選択できないのですが、複数を選択したい場合は、先頭要素を真ん中クリックで選択し、最後尾を右クリックすると、箱状に範囲が選択されます。

SEditでの基本S式編集コマンド

さて、Interlisp-Dの構造エディタのSEditのコマンドですが、主な所ではこんな感じになっています。

Delete、c-h 後一文字を削除
c-w 選択を削除
m-u アンドゥ
m-r リドゥ
m-f 検索
c-m-f 後へ検索
m-s 置換
c-m-s 選択を削除
c-m-; 選択をコメントアウト
m-o 別エディタで編集
m-e 式をeval
m-x 式をマクロ展開して元の式と置き換え
m-/ 所謂スプライシング “(x y z) ⇒ x y z”
m-i インスペクト
m-j 範囲を結合(シンボルの場合は、シンボル名が結合、リスト、文字列等、色々結合可能)
m-( 括弧で囲む
m-) 括弧で囲む。カーソルは後へ
m-, 選択に,を付ける
m-@ 選択に,@を付ける
m-. 選択に,.を付ける
m-' 選択に'を付ける
m-` 選択に`を付ける
c-c コンパイル
c-x 評価
c-m-c コンパイルしてエディタを閉じる
c-m-x 評価してエディタを閉じる

選択となっているのは、1つ以上の要素を編集対象としています。

編集する上で便利なのは、さくさく削除するc-wと、検索(選択される)&削除 or 置換 でしょうか。
カーソル移動がダルいのでm-fで移動するのもありだと思います。

別エディタを開くm-oについては、Emacsでいうとm-.のような感覚です。

対話的に書く

ちょっと書いては評価スタイルの場合ですが、SEditだとエディタの画面1つには1式しか表示されないので、リスナーと行ったり来たりになります。
redofixuseがあるので、そこそこ動作確認もできますが、(sedit:sedit '(foo 1 2 3))や、(sedit:sedit '(macroexpand '(mac x y z)))として別エディタを開いて、この式をm-eする方が楽な気もします。

まとめ

久々にMedleyのことを書いてみました。
Interlisp-Dの環境も大体使える位まで把握したい所です。


HTML generated by 3bmd in SBCL 1.2.13

comments powered by Disqus