[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:09029] Re: fillの質問



山本です。

武井進さんの<20040722124049.07C0.SUSUMU-TAKEI@xxxxxxxxxxxxxxxxx>から
>
>◆質問1
(略)
>行頭から書いた場合は、例にありますように、1行目の先頭の「・」分、2行目
>以降は、ちゃんと先頭にスペースを入れてくれます。
>(常にこうなって欲しいのです。)

通常のfillではなく、flex-fillではないでしょうか?手元の環境にはflex-fillを
入れてないので未確認ですが、下みたいにするとどうなりますか?

 (defvar *flexible-fill-bullet-prefix-regexp* "^ *\\(・\\|[0-9]+)\\)")

>◆質問2
>
>それから、漢字の場合は、リターンキー(漢字を確定した瞬間)で改行してくれ
>ますが、アルファベットの場合、スペースキーじゃないと改行してくれません。
>アルファベットもリターンキーで改行させたい場合はどうしたらよいのでしょう
>か?

動作検証は仕切れていませんが、次のように.xyzzyに書いて試してください。

(defun foo-func ()
  (and auto-fill *auto-fill-hook
       (funcall *auto-fill-hook *last-command-char*)))
(add-hook '*pre-command-hook* 'foo-func)

それなりに動くような気がします。

以下はおまけです。

空白やタブの場合にauto-fillが作動するのは以下のロジックによ
るものです。ロジックだけをみると改行でもauto-fillが作動する
ように見えますが、改行(=LFD(=C-j))が別のコマンドに割り当てら
れていると、純粋な改行ではなくなるために以下のロジックを通ら
なくなります。

fill.l ------------------------------------------------

(defun do-auto-fill (c)
  (unless (plusp fill-column)
    (return-from do-auto-fill nil))
  (when (and (or (member c '(#\SPC #\TAB #\LFD))
		 (and (or (kanji-char-p c)
			  (kana-char-p c))
		      (not (listen *keyboard*))))
	     (>= (current-column) fill-column))
    (when (= (save-excursion ... )))))

--
    YAMAMOTO Taizo / 山本 泰三
        mailto:cbf95600@xxxxxxxxxxxxxxx
        http://www1.odn.ne.jp/ymtz/

Index Home