■掲示板に戻る■
全部
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
1001-
最新50
レス数が1000を超えています。残念ながら全部は表示しません。
SKK専用スレッド
611 :
580
:01/12/22 01:22
改行の扱いが決め打ちなのはあんまりなので、
オプション設けるようにしました。
(defun my-skk-dynamic-insert (&optional arg)
(interactive "*p")
(let* ((num (if arg (car arg) 1))
(c (char-to-string last-command-char))
(alist (nth 1 (assoc c my-skk-dynamic-insert-rule-list)))
(regexp-list (mapcar (lambda (l)
(if (eq (car l) t)
".\\|\n"
(car l)))
alist))
(default-str (cdr (assq t alist)))
str)
(setq str (if (bobp)
(my-skk-func-to-str default-str)
(let ((c-b (char-to-string (char-before
(if (and (bolp)
(not my-skk-dynamic-insert-ignore-CRLF))
(1- (point))
(point)))))
(idx 0))
(while (not (string-match (nth idx regexp-list)
c-b))
(setq idx (1+ idx)))
(my-skk-func-to-str (cdr (nth idx alist))))))
(while (> num 0)
(skk-insert-str str)
(setq num (1- num)))))
(defvar my-skk-dynamic-insert-ignore-CRLF nil
;; Emacs の内部では CRLF でも '\n' だけど。
"*`my-skk-dynamic-insert' でカーソルが行頭にある時、改行を無視して前の文字を参照するか。")
あとは
(setq skk-rom-kana-rule-list ...
>>603
参照
(defun my-skk-func-to-str ...
>>603
参照
(defvar my-skk-dynamic-insert-rule-list ...
>>606
参照
ただ、気になるのは my-skk-dynamic-insert-rule-list が
書式として分りにくくないかどうかです。関数は中身が複雑でも
構わないけど、変数の指定が難解だと結局使ってもらえないので。
あと、
>>603
で挙げた初期値はかなり適当なので、全角数字の条件は
省く or 他のにもつける(その場合句読点も対応させる)必要があります。
それと(正規表現の中に) '\n' も有り・無しのどっちがいいか?
;; これは ML での話でいいかもしれません。
my-skk-dynamic-insert-rule-list があんまり難解であれば
>>590
をベースに一部手直し & シンボル名書換えしたほうが
いいと思います。
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver5.26+ (01/10/21-)