Posted 2015-07-15 05:06:39 GMT
Medleyを使ってみようシリーズの第二回、前回は4年半前でした。
過去のmedley関係の記事は、こんな感じです。
Medleyとは、Interlisp-Dが仮想マシン化したものです。
LinuxやIRIX(MIPS)、Solaris(SPARC)等で動くようですが、自分は、古いLinuxで動かしています。
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
がどんどん別の場所にずれて行くという謎現象が解決できず。
カーソルの移動は基本的にマウスでしかできません。キー操作も用意されていそうなものですがマニュアルを眺めても見付けられず…。
選択ですが、左クリックをすると範囲が外側に伸びてゆきます。
左クリックだと1つの式しか選択できないのですが、複数を選択したい場合は、先頭要素を真ん中クリックで選択し、最後尾を右クリックすると、箱状に範囲が選択されます。
さて、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式しか表示されないので、リスナーと行ったり来たりになります。
redo
、fix
、use
があるので、そこそこ動作確認もできますが、(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