個人的に気に入っているxyzzyの特徴は
わたしのsiteinit.lです.
my-kill-lineがみそかな.行頭なら改行までまとめて削除,行頭でなければ行末まで削除.ようするに1行まるまる削除したいときに,普段なら行頭で\C-k\C-kとするところを,\C-k一発でOKにするだけ.そんだけだけど,結構便利です.
これは標準のlisp/help.lと置き換えて使うことを想定してます.ファイルを置き換えてbyte-compileしてxyzzyをダンプしなおして下さい.
標準のhelp.lとの違いは次のとおり.
Docstringプロジェクトのページもどうぞ.
ldoc.lEmacsのeldocを真似してldocというのを作ってみた.かなり手抜きだけどそれなりに使える.
ldocを有効にしてあると,lispの関数名の上にカーソルを持っていけばステータスライン(とでも言うのだろうか? ミニバッファの下のこと)にその関数が取るべき引数を表示するし,lispの変数名の上にカーソルを持っていけばその変数のdocstring(defvarの3番目の引数で指定できる変数を解説するための文字列)を表示する.
使用方法はいたって簡単.site-lispなどにldoc.lをコピーして
(require "ldoc") (turn-on-ldoc)
するだけ.lispのプログラムを書くときに,わざわざlispリファレンスを見なくても引数が分かって便利だと思う.
| 変数名 | 解説 | デフォルト値 |
|---|---|---|
| *ldoc-activated-mode-list* | ここで指定したモードでのみldocが有効になる | '(lisp-mode lisp-interaction-mode) |
paren.llispプログラミングをしていて,閉じ括弧や開き括弧の対応付けに苦労している人向け.開き括弧や閉じ括弧にカーソルをあわせると,対応する括弧間をハイライトします.対応する括弧がない場合,その括弧を赤くハイライトします.本当は現在のポインタの直後の開き括弧や直前の閉じ括弧に反応します).また,対応する括弧が画面内に無いときは,対応する括弧のある行をミニバッファに表示します.
全てのバッファ,全てのモードで必ずparenを有効にしたい場合はこれだけ.
(require "paren") (turn-on-global-paren)
さらに「c-modeの時は括弧だけハイライト,ハイライトの方法はアンダーラインで」というのを追加したい場合はこんな感じ.
(setq *c-mode-hook* '(lambda ()
(setq *paren-highlight-only-paren* t)
(setq *paren-paren-attribute* '(:underline t :bold t))))
ちなみにc-modeの時だけparenを有効にしたい場合はこんな感じ
(require "paren")
(setq *c-mode-hook* '(lambda ()
(setq *paren-highlight-only-paren* t)
(setq *paren-paren-attribute* '(:underline t :bold t))
(turn-on-paren))))
| 変数名 | 解説 | デフォルト値 |
|---|---|---|
| *paren-highlight-only-paren* | non-nilなら括弧だけをハイライト | nil |
| *paren-attribute* | ハイライトのアトリビュート | '(:bold t) |
| *paren-paren-attribute* | 括弧をハイライトする際のアトリビュート | *paren-attribute* |
| *paren-invalid-attribute* | 対応する括弧が無い場合のハイライトのアトリビュート | '(:bold t :background 1) |
| *paren-show-not-visible-matched-paren* | 対応する括弧が画面内に無い場合,その括弧が含まれる行をステータスラインに表示 | t |
2000年9月7日 バグを修正.
2001年3月15日 goal-columnを保存するよう変更
勝手にflexible-fillというたいそうな名前を付けました.何をするものかというと,行頭を見て適当にfill-prefixを変更するものです.これだけだとわかりにくいというあなたのために,図解です.
私はメールの本文書きにxyzzyを使っていますが,コメントを書くときよく'# 'を行頭に追加します.
# こめんとやで
さらにコメントを追加していくと,auto-fillでは
# こめんとやで.まだまだコメント 追加やで.
こんな感じになってしまいます.flex-fillを使えば,こんな場合でも自動的に
# こめんとやで.まだまだコメント # 追加やで.
こんな感じにしてくれます.もちろん\M-q(fill-paragraph)も不完全ながら可能です.ほかにも
行頭にスペースを入れて字下げ しているときも自動的にfill-prefix を調整してくれたり, ・こういう風に,行頭に'・'付き の文とか 01)こんな感じの番号付きリスト なんかも字下げできます.
ほんとはfill.lなんかをいじろうかとも思ったんですが,よく分からなかったのでpost-command-hookをいじって適当に作ってしまいました.実はちょっとだけ不具合があるけど,まあ使えるからよしとしました.
ファイルをセーブするたびにファイル中のタイムスタンプを更新する.タイムスタンプの書式やタイムスタンプの場所は変数で変更可能.
標準添付のisearch.lにEmacsのisearch-yank-wordを追加したもの.使い方は簡単で,\C-sでインクリメンタルサーチモードに入ったらおもむろに\C-wを押すだけ.\C-wを押すたびに次の単語を検索語句に追加できる.
xyzzyに正式に採用されたのでここからは削除.
(require "isearch")