■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50



レス数が1000を超えています。残念ながら全部は表示しません。

SKK専用スレッド

1 :名無しさん@お腹いっぱい。 :2000/11/27(月) 00:40
なんだかんだ言っても、一番使いやすいのはSKK

547 :名無しさん@お腹いっぱい。 :01/12/18 02:54
>>545
「おおむら ゆう」さん? Meadow掲示板の人
ttp://www.t3.rim.or.jp/~yutopia/

548 :547 :01/12/18 02:56
シクジッタ
ttp:の方を使ってくれい

549 :名無しさん@お腹いっぱい。 :01/12/18 03:01
>>547
Meadow の偉い人って認識で当ってる?

550 :名無しさん@お腹いっぱい。 :01/12/18 03:36
>>544
某所はココでしょう。XEmacs のインストールの件とか。

>>545
何者? って言い方はないんじゃ?
SKK(や APEL) でも Meadow へのインストール関係で
makeit.bat 用意してくれたりしてる。

551 :545 :01/12/18 03:57
>>550
すまん。いいかた悪かった。
無償でいろいろ頑張ってくれてる方々に
"何者"はないわな...

自分に対する罰として、これから TUT コードを覚えます...

552 :535 :01/12/18 07:38
>>540
emacsclient で frame 作成しない
( server-start する emacs は X 環境だけど、client は-nw)
方法もあるんですか? もしそうだったら nemacs から
emacs21 に換えたいです。

553 :>>552 :01/12/18 12:20
そこまでいったらスレ違いじゃないか?
emacsスレがかわいそうじゃないか(藁

554 :名無しさん@お腹いっぱい。 :01/12/18 14:16
>>538
skkime(2000用の最新)って
一度ログアウトする
辞書登録に失敗する
と全く変換できなくならない?俺だけか?

555 :名無しさん@お腹いっぱい。 :01/12/18 18:50
親指シフトエミュレータみたいに、スペース+文字の同時打鍵でシフト+文字を
入力できたらなあ。

556 :名無しさん@お腹いっぱい :01/12/18 19:26
>>555
> 親指シフトエミュレータみたいに、スペース+文字の同時打鍵でシフト+文字を
> 入力できたらなあ。

ddskk11.6.0.tar.bz2 の中にある
ddskk-1.6.0/nicoa/README.ja を読むと幸せになれるかも。

557 :名無しさん@お腹いっぱい。 :01/12/18 19:48
開発者の T さん、文章面白いです。
うーむ、NICOLA かぁ。HHK(us版)だしなぁ。

558 :名無しさん@お腹いっぱい。 :01/12/18 21:42
skkinput の fontset Resource(-fontset オプションも)がどうしても
効かないんだけど考えられる原因は?xrdb はしています。

実際には rxvt 上でだけフォントが汚くなるという症状です。
kterm, Mozilla, etc. では大丈夫です。

559 :名無しさん@お腹いっぱい。 :01/12/19 09:22
かなモードでも数字の後の-はーじゃなくて-になると便利だと思いませんか?
例えば
東京都杉並区1ー234ー5


一度 l を押さないとこんな感じになってしまいますよね?
dor fileでどうにかならないのかな〜

560 :名無しさん@お腹いっぱい。 :01/12/19 10:35
便利かもと思って、作ってみた。
どうよ?

(setq skk-rom-kana-rule-list
(cons '("-" nil skk-insert-hyphen)
skk-rom-kana-rule-list))

(defun skk-insert-hyphen (arg)
(interactive "P")
(insert
(let ((c (char-to-string (char-before (point)))))
(cond ((string-match "[0-9]" c) "-")
((string-match "[0-9]" c) "−")
(t "ー")))))

561 :559 :01/12/19 10:38
>>560

お兄さん便利っすよ。
本家のMLに投稿していいっすか?

562 :559 :01/12/19 10:39
そうそう、最後の一行が顔文字に見えるのは
2chのやりすぎですか?

563 :名無しさん@お腹いっぱい。 :01/12/19 10:54
>>561
> 本家のMLに投稿していいっすか?
全然かまわないっす。

564 :名無しさん@お腹いっぱい。 :01/12/19 15:13
ちなみに本家の ML とは一般に京大のほうを指してた筈。
もう終っちゃったけどね。

565 :559 :01/12/19 15:19
あーそうでしたね。
OpenLabの方に投稿しておきました。

566 :名無しさん@お腹いっぱい。 :01/12/19 16:36
>>560
その arg と (interactive "P") の
意味は何なのでしょうか.
自分で作っている時も
これらがないと文句いわれるので
いつも入れますが, 理由がよくわからない.
henkan-point か何かだっけ?

567 :名無しさん@お腹いっぱい。 :01/12/19 17:04
>>560
Emacs の info 見りゃ一発でしょうに。

568 :567 :01/12/19 17:04
間違い、>>566 に向けてでした。

569 :名無しさん@お腹いっぱい。 :01/12/19 17:13
SKK に限らず、Ring 管理下の ML は何故に
あそこまで spam が多いのだろうか。

570 :566 :01/12/19 17:25
interactive の意味がわからない
ということではないですよ. >>567
skk-rom-kana-rule-list から呼び出される関数は
必ず一つの引数付きで呼び出されるので,
関数本体で使わなくても
>>560 さんの skk-insert-hyphen のように
arg が必要になるってことです.

で, この arg が何なのかよくわからないんです.

571 :名無しさん@お腹いっぱい。 :01/12/19 17:31
>>560
↓この方がいいかな。
((string-match "[0-9-]" c) "-")
((string-match "[0-9−]" c) "−")

>>570
使ってないんじゃネーノ?

572 :559 :01/12/19 17:41
>>571
> ↓この方がいいかな。

-が続いた時も-の方がいいですね。
ますます便利に

573 :名無しさん@お腹いっぱい。 :01/12/19 18:17
すげー。2ch と ML が同期してうるなんて...ちょと感動。

574 :名無しさん@お腹いっぱい。 :01/12/19 18:24
>>573
どこでやってんの?
news://news.ring.gr.jp/ring.openlab.skk には見当たらないけど、
これって配送に時間かかってるの?

575 :名無しさん@お腹いっぱい。 :01/12/19 18:32
skk-insert-hyphen、すごく便利。
SKKユーザに全角の英数字使う需要ってあるのかな?
単純にこうしてみたんだけど。

(defun skk-insert-hyphen (arg)
(interactive "P")
(insert
(cond ((skk-ascii-char-p (char-before)) "-")
(t "ー"))))

576 :名無しさん@お腹いっぱい。 :01/12/19 18:58
>>574
ML 入ればいいじゃん。

577 :名無しさん@お腹いっぱい。 :01/12/20 07:23
>>559

数字の後の、と。も ,と.のほ方がよくないですか?
あとは数字の後の/も aあモード じゃなくてそのまま/の方が分数に便利かも

ー → -
、 → ,
。 → .
aあ → /

こんな感じでどうですか?

578 :名無しさん@お腹いっぱい。 :01/12/20 09:21
>>566 さんって、いくつか skk-rom-kana-rule-list 用の
関数を自作してるようですが、具体的に何を作ってるん
ですか? 自分はデフォルトの挙動で満足してしまってるん
ですが、>>560 みたいなのを見ると、もっと利便性を追求
しなくては、という気にもなってきました。

579 :559 :01/12/20 09:23
>>577

、と。はこんなんでいいかは知りませんがとりあえず動いているようです。
なんか、まとめられそうだけどよく分かりません。

(setq skk-rom-kana-rule-list
(cons '("." nil skk-insert-period)
skk-rom-kana-rule-list))

(defun skk-insert-period (arg)
(interactive "P")
(insert
(let ((c (char-to-string (char-before (point)))))
(cond ((string-match "[0-9,.]" c) ".")
(t "。")))))

(setq skk-rom-kana-rule-list
(cons '("," nil skk-insert-comma)
skk-rom-kana-rule-list))

(defun skk-insert-comma (arg)
(interactive "P")
(insert
(let ((c (char-to-string (char-before (point)))))
(cond ((string-match "[0-9,.]" c) ",")
(t "、")))))

580 :名無しさん@お腹いっぱい。 :01/12/20 09:37
えーとですね、char-before はバッファの先頭だと
nil を返すので、適当に (bobp) を入れるなりする必要が
ありますね。あと、char-before に (point) を引数で
渡す必要は別にないかと。(デフォルトです)

581 :580 :01/12/20 09:46
例えば
(defun skk-insert-comma (arg)
(interactive "P")
(insert
(let (c)
(if (bobp)
"、"
(setq c (char-to-string (char-before)))
(if (string-match "[0-9,.]" c)
","
"、")))))
こんな感じかな?
;; buffer の先頭での',' が',' か'、'かは微妙だが

582 :名無しさん@お腹いっぱい。 :01/12/20 11:43
>>581
rewrite してみた。
(defun skk-insert-comma (arg)
(interactive "P")
(insert (cond ((bobp) "、")
((string-match "[0-9,.]" (char-to-string (char-before))) ",")
(t "、"))))

583 :580 :01/12/20 12:10
>>582
あぁ、そう書けばすっきりするかぁ。(let (c ... に
捕われてしまってて汚ないコードを披露してしまった。
匿名な 2ch で良かった。(^^;;
ところで bobp な場合はやっぱ ',' のほうがいいかな。

584 :560 :01/12/20 12:57
まとめてみた。
数字の後に空白があった場合も半角になってくれた方がうれしいかな?
1 - 2 とか。
(setq skk-ascii-or-kanji-alist '(("-" . "ー")
("," . "、")
("." . "。")))
(setq skk-ascii-or-kanji-regexp "[0-9-,.]")

(setq skk-rom-kana-rule-list
(append
(mapcar (lambda (pair)
(list (car pair) nil
`(lambda (x)
(interactive "P")
(skk-insert-ascii-or-kanji ,(car pair) ,(cdr pair)))))
skk-ascii-or-kanji-alist)
skk-rom-kana-rule-list))

(defun skk-insert-ascii-or-kanji (ascii kanji)
(insert (cond ((bobp) kanji)
((string-match skk-ascii-or-kanji-regexp
(char-to-string (char-before))) ascii)
(t kanji))))

585 :582 :01/12/20 13:05
>>584
ぐは、先を越された。

>>583
>>560 のパクりっす。

半角と判断されるところで
強制的に全角文字を入れる方法が欲しいところ。

586 :580 :01/12/20 13:29
;; 汚名^H^H名誉挽回のチャンス (^^;;
>>585
(setq skk-rom-kana-rule-list
(append
(mapcar #'(lambda (pair)
(list (car pair)
nil
`(lambda (arg)
(interactive "P")
(skk-insert-ascii-or-kanji ,(car pair) ,(cdr pair) arg))))
skk-ascii-or-kanji-alist)
skk-rom-kana-rule-list))

(defun skk-insert-ascii-or-kanji (ascii kanji arg)
(insert (cond (arg kanji)
((bobp) kanji)
((string-match skk-ascii-or-kanji-regexp
(char-to-string (char-before))) ascii)
(t kanji))))

としたら (arg を利用しただけ) C-u でいけた。

>>584
mapcar と backquote 使うとは。確かにこれがスマートかな?
初心者には読めないけど。
;; mapcar を2重に使ってるコードとか見ると憧れてしまう。

587 :560 :01/12/20 13:33
>>586
俺もそんな感じに変えてたとこでした。
でも、C-u だと "-" で "ー" が出せないですよね。
そこをどうしたものか。

588 :560 :01/12/20 13:37
ちょっと書き忘れ。
>>586
> mapcar と backquote 使うとは。確かにこれがスマートかな?
last-command-char を使った方法も考えたんだけど、そっちの方がよかったかな。

589 :580 :01/12/20 13:50
>>587,588
ほんとだ、'ー'が出ない。あと細かいとこだけど、
C-u で4倍にならないし(オリジナルも)。

あと、僕も last-command-char (というか、this-command-keys)
使った方法をボーっと考えてました。
mapcar とどっちがいいでしょうね?

590 :580 :01/12/20 15:37
;; やっと割とマトモなのができた

(setq skk-rom-kana-rule-list
(append skk-rom-kana-rule-list
'(("-" nil skk-insert-ascii-or-kanji)
("," nil skk-insert-ascii-or-kanji)
("." nil skk-insert-ascii-or-kanji))))

(defun skk-insert-ascii-or-kanji (&optional arg)
(interactive "*p")
(setq arg (if arg
(car arg)
1))
(let ((c (char-to-string last-command-char)))
(while (> arg 0)
(insert (cond ((bobp) c)
((string-match skk-ascii-or-kanji-regexp
(char-to-string (char-before))) c)
(t (cdr (assoc c skk-ascii-or-kanji-alist)))))
(setq arg (1- arg)))))

としてはどうでしょう?
;; skk-rom-kana-rule-list は平易にするため敢えてこうしてます。
;; dot.skk 的にもこのほうがいいのでは?
skk-ascii-or-kanji-alist, skk-ascii-or-kanji-regex は
以前のを使います。
強制的に jis なのを使うには 'Q' で▽に入るってので妥協
でダメですか? 例えば '-' を20回入れたいって事もあるだろうし。
;; skk-ascii-or-kanji-(alist|regexp) の 'kanji' がちょっと
;; ひっかかる...

591 :558 :01/12/20 17:04
>>558
> skkinput の fontset Resource(-fontset オプションも)がどうしても
> 効かないんだけど考えられる原因は?xrdb はしています。
>
> 実際には rxvt 上でだけフォントが汚くなるという症状です。
> kterm, Mozilla, etc. では大丈夫です。

これですが、rxvt*mfontn に jisx0201.1976-0 なフォント指定を追加したら
なおりました。何故 skkinput の全角フォントのマッチングが rxvt の半角
フォントリソースの影響を受けるのか理解できませんが、まあいいや。

# でも肝心の rxvt の方はそのままじゃ半角カナ扱えないんですね。
# 知らなかった。

592 :560 :01/12/20 17:13
>>590
> としてはどうでしょう?
> ;; skk-rom-kana-rule-list は平易にするため敢えてこうしてます。
できれば、skk-ascii-or-kanji-alist を使って
(setq skk-rom-kana-rule-list
(append (mapcar (lambda (x)
(list (car x) nil 'skk-insert-ascii-or-kanji))
skk-ascii-or-kanji-alist)
skk-rom-kana-rule-list))
こうしたいなぁとか。
そうすれば、skk-ascii-or-kanji-alist と同期がとれるので。

> 強制的に jis なのを使うには 'Q' で▽に入るってので妥協
これは全然 OK でしょう。

> ;; skk-ascii-or-kanji-(alist|regexp) の 'kanji' がちょっと
> ;; ひっかかる...
名前がって事ですか?適当につけたんで勝手に変えちゃっていいっすよ。

593 :580 :01/12/20 17:30
>できれば、skk-ascii-or-kanji-alist を使って
[...]
>そうすれば、skk-ascii-or-kanji-alist と同期がとれるので。

それは確かにあります。まぁ、symbol名 の件も
skk-rom-kana-rule-list も、実際に dot.skk に追加される方に
任せてしまいたいかなぁと僕は思ってます。だって命名センス
無いし、どーいうのが適切かイマイチ分らないから。
;; という事でスイマセン。> committer の方

594 :580 :01/12/20 17:33
;; 何度もすいません。
あと、bobp な時に ',.-' にしちゃいましたけど、
他との整合性からこれも '、。ー' にすべきだったな。

595 :582 :01/12/20 17:39
>>590
すばらしい。

> 強制的に jis なのを使うには 'Q' で▽に入るってので妥協
おっけーです。
つーか、Q 知らなかった。

596 :名無しさん@お腹いっぱい。 :01/12/20 17:45
>>595
> つーか、Q 知らなかった。

M-x skk-tutorial

597 :582 :01/12/20 17:52
(´-`).。oO(tutorial やったのは何年前だろう……)

598 :名無しさん@お腹いっぱい。 :01/12/20 18:46
なんだか盛んだね
やっぱSKKは人気あるね。

599 :名無しさん@お腹いっぱい。 :01/12/20 23:11
>>591
> # でも肝心の rxvt の方はそのままじゃ半角カナ扱えないんですね。
> # 知らなかった。

自分は、半角カナ対応にさせたパッチを見付けてきて使っています。
最新のバージョンに対してでなくて、2.6.3 へのパッチですけど、
別にさしたる不便はありません。

元のパッチは、jisx0201 だけでなくて jisx0212 にも対応していますが、
自分は jisx0212 の部分は要らなかったので、jisx0201 の部分だけを抜き
出してパッチを当てています。

# エラー出力が間違っていたのもあるけど…

パッチは google で検索すれば見つかると思います。

しかし、半角カナは 2ch のおかげで当分滅びそうもありませんね(w

600 :名無しさん@Emacs :01/12/20 23:43
>>596 を見て
久しぶりに C-x t してみた。補完機能があるんだね。
忘れてた。便利そう。

# navi2ch 中に SKK モードにして「あれ?」とか思ったりして欝です(w

601 :名無しさん@Emacs :01/12/20 23:47
全角文字の後のビックリマークが半角なのはチョット

602 :538 :01/12/21 00:21
>>554
> 一度ログアウトする 辞書登録に失敗する と全く変換できなくならない?
うーん、俺の場合は、全く変換できなくなるのは、skkiservがアクセス違反で死んだ時だけだなあ。
あ、俺はskkimeはデフォルトIMEにはしてないけど、それが関係あるのかな。
本当はデフォルトIMEにしたいんだけど、それやると、ログアウトの時に、プロファイルを書き戻せませんでしたエラーがイベントログに。。。

最近アップデートされてないのは、やっぱり作者の人、忙しいんだろうね。
あのままでXPで動くのかなあ。。。あれが無いと仕事にならん。

603 :580 :01/12/21 12:22
なんか、シンボル名と実際の動作があまり違うのは
いかんよなぁ、とか、"," は skk-current-touten を
呼ぶべきだよなぁとか考えてたら膨らんでしまいました。(^^;;;

(defvar my-skk-dynamic-insert-rule-list
'(("." ("." . skk-current-kuten))
("," ("," . skk-current-touten))
("-" ("-" . "ー")))
"*状況に応じて動的に切り替えるルール。
car が入力された時、現在のカーソルの直前の文字が `my-skk-dynamic-insert-regexp-alist'
にマッチすれば左側が、マッチしなければ右側がバッファに挿入される。")

;; caadr とか書くのはアレなので、適当な docstring です。
;(setq my-skk-dynamic-insert-rule-list
; '(("." ("." . skk-current-kuten))
; ("," ("," . skk-current-touten))
; ("-" ("-" . "ー"))))
;; なんて事も(あんま意味無いけど)出来ます。


(defvar my-skk-dynamic-insert-regexp-alist
'(("." . "[0-9-,.]")
("," . "[0-9-,.]")
("-" . "[0-9-,.]"))
"*`my-skk-dynamic-insert-rule-list' を用いて動的に切り替える条件の正規表現。
car が入力された時、現在のカーソルの直前の文字が cdr にマッチすれば
`my-skk-dynamic-insert-rule-list' での左側が、マッチしなければ
右側がバッファに挿入される。")

(defun my-skk-dynamic-insert (&optional arg)
(interactive "*p")
(let* ((num (if arg (car arg) 1))
(c (char-to-string last-command-char))
(regexp (cdr (assoc "," my-skk-dynamic-insert-regexp-alist)))
(alist (car (cdr (assoc c my-skk-dynamic-insert-rule-list)))))
(while (> num 0)
(skk-insert-str (cond ((bobp)
(my-skk-func-to-str (cdr alist)))
((string-match regexp
(char-to-string (char-before)))
(my-skk-func-to-str (car alist)))
(t
(my-skk-func-to-str (cdr alist)))))
(setq num (1- num)))))

;; こんなの書かずとも SKK 側に適当な関数がありそうだが分からんかった
(defun my-skk-func-to-str (arg)
(if (char-or-string-p arg)
arg
(funcall arg nil)))

(setq skk-rom-kana-rule-list
(append skk-rom-kana-rule-list
(mapcar (lambda (l)
(list (car l) nil 'my-skk-dynamic-insert))
my-skk-dynamic-insert-rule-list)))

604 :580 :01/12/21 12:46
XEmacs だと "[0-9-,.]" じゃダメで "[0-9,.-]" にする必要が
ありました。

(defvar my-skk-dynamic-insert-regexp-alist
'(("." . "[0-9,.-]")
("," . "[0-9,.-]")
("-" . "[0-9,.-]"))
"*`my-skk-dynamic-insert-rule-list' を用いて動的に切り替える条件の正規表現。
car が入力された時、現在のカーソルの直前の文字が cdr にマッチすれば
`my-skk-dynamic-insert-rule-list' での左側が、マッチしなければ
右側がバッファに挿入される。")

に置き換えてください。
;; いちおー Nemacs から XEmacs の上まで動いてるみたい。
;;; Nemacs では ddskk-e18 branch

605 :580 :01/12/21 12:55
;; 阿呆なミスしてました。これで最後??

(defun my-skk-dynamic-insert (&optional arg)
(interactive "*p")
(let* ((num (if arg (car arg) 1))
(c (char-to-string last-command-char))
(regexp (cdr (assoc c my-skk-dynamic-insert-regexp-alist)))
(alist (car (cdr (assoc c my-skk-dynamic-insert-rule-list)))))
(while (> num 0)
(skk-insert-str (cond ((bobp)
(my-skk-func-to-str (cdr alist)))
((string-match regexp
(char-to-string (char-before)))
(my-skk-func-to-str (car alist)))
(t
(my-skk-func-to-str (cdr alist)))))
(setq num (1- num)))))

606 :580 :01/12/21 17:11
my-skk-dynamic-insert-regexp-alist を廃止し、
my-skk-dynamic-insert-rule-list と my-skk-dynamic-insert を
変えてみました。
改行している時の扱いは好みが分れるかもしれません。
;; regexp に \n が入ってるのもどうかな?。最初とまどうかも。

(defvar my-skk-dynamic-insert-rule-list
'(("." (("[-0-9,.\n]" . ".")
(t . skk-current-kuten)))
("," (("[-0-9,.\n]" . ",")
(t . skk-current-touten)))
("-" (("[-0-9,.\n]" . "-")
("[0-9,.−]" . "−")
(t . "ー"))))
"*`my-skk-dynamic-insert' を用いて動的に入力する条件。
バッファに挿入される文字は入力に対応した連想リストで決まる。
具体的には、現在のカーソルの直前の文字(改行していれば
さらにその前の文字)が連想リストの car にマッチした時、
その cdr がバッファに挿入される。
`t' は全ての文字にマッチする。")

(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 (bolp)
(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)))))

607 :名無しさん@お腹いっぱい。 :01/12/21 17:28
Windowsで、ずーっと SKKIME を使ったり止めたりしてます(笑)

SKKIMEって突然数秒凍ったりしませんか?Windows全体が。この凍る現象、普通
はなんとか耐えられるレベルなんですけど、たまに凍ったら困るようなこともあ
ってMS-IMEに戻し、また耐えられなくなってSKKに戻し…。

skkiserv がどんどん大きくなっていくのが原因なのかな。それにしても全体が止らなくても…。
Windowsだから仕方ないのかな。98の時も今の2000でも変わりません。

608 :560 :01/12/22 00:39
>>508

決定稿は>>606でいいのですか?
dot.skkに載せるのはどれにします?

609 :560 :01/12/22 00:40
上の>>508>>580の間違いね

610 :559 :01/12/22 00:53
しかも自分は>>560じゃなくて>>559だった

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 をベースに一部手直し & シンボル名書換えしたほうが
いいと思います。

612 :559 :01/12/22 01:26
>>611

>>611>>603>>606全部必要ってことですか?

613 :580 :01/12/22 01:32
>全部必要ってことですか?

いえ、それぞれから必要なのだけ抜き出してください。
>>611 で、どれから何をってのは分りますよね?

ところで >>559 さん自身(他の方の意見も大募集ですが)
は変数の指定、難しく感じます??

614 :名無しさん@お腹いっぱい。 :01/12/22 02:02
>>607
Windowsが数秒間操作不能になるのって、SKKIMEのせいだったのか。。
Officeつかうときに限ってそうなるので、MSのせいかと思ってたYo!
って、良く考えたら、Office使う時しかSKKIMEバリバリ使ってないじゃん。

615 :580 :01/12/22 02:08
ちなみにインデントを弄るとちょっとは読み易いと思う。
docstring もさっきの修正に追随してみた。

(defvar my-skk-dynamic-insert-rule-list
'(("."
(("[-0-9,.\n]" . ".")
(t . skk-current-kuten)))
(","
(("[-0-9,.\n]" . ",")
(t . skk-current-touten)))
("-"
(("[-0-9,.\n]" . "-")
(t . "ー"))))
"*`my-skk-dynamic-insert' を用いて動的に入力する条件。
バッファに挿入される文字は入力に対応した連想リストで決まる。
具体的には、現在のカーソルの直前の文字が連想リストの car にマッチした時、
その cdr がバッファに挿入される。
但し、改行していて、かつ `my-skk-dynamic-insert-ignore-CRLF' が nil で無ければ、
さらにその前の文字をマッチングに用いる。
`t' は全ての文字にマッチする。")

あと、さっきのコードに論理値逆転してた(頭回ってないなぁ...)
とこがあったので、その修正ついでに全て載せます。よって
これと次の記事以外は参照する必要はないです。>>559
;; 改行多すぎっていわれた...

616 :580 :01/12/22 02:09
(defvar my-skk-dynamic-insert-ignore-CRLF t
;; Emacs の内部では CRLF でも '\n' だけど。
;; あと、無視する改行の数は1つだけです。(これが挙動として自然だと思う。
"*`my-skk-dynamic-insert' でカーソルが行頭にある時、改行を無視して前の文字を参照するか。")

(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)
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)))))


(defun my-skk-func-to-str (arg)
(if (char-or-string-p arg)
arg
(funcall arg nil)))

(setq skk-rom-kana-rule-list
(append skk-rom-kana-rule-list
(mapcar (lambda (l)
(list (car l) nil 'my-skk-dynamic-insert))
my-skk-dynamic-insert-rule-list)))

長々と(汚いコードを)何度も申し分けない >all

617 :559 :01/12/22 09:19
>>615
>>615と616を.skkに書いてバイトコンパイルしてみたのですが

Symbol's value as variable is void: skk-rom-kana-rule-list

と出るのは気にしなくていいですか?

618 :580 :01/12/23 13:22
>>617 気にしないでいいと思うけど。
少し修正 & my-skk-func-to-str を廃止
;; SKK 本体へ統合の方向でって、どうしよう、困ったな...。

(defun my-skk-dynamic-insert (arg)
(let* ((str (char-to-string last-command-char))
(alist (nth 1 (assoc str my-skk-dynamic-insert-rule-list)))
(regexp-list (mapcar (lambda (l)
(if (eq (car l) t)
".\\|\n"
(car l)))
alist))
(default-data (cdr (assq t alist)))
(str-before (unless (bobp)
(char-to-string (char-before
(if (and (bolp)
my-skk-dynamic-insert-ignore-CRLF)
(1- (point))
(point))))))
(idx 0)
(data (cond
;; my-skk-dynamic-insert-rule-list を後から修正して
;; 対応するエントリが無くなった場合の fail safe
((null alist)
str)
((null str-before)
default-data)
(t
(while (not (string-match (nth idx regexp-list)
str-before))
(setq idx (1+ idx)))
(cdr (nth idx alist))))))
(if (functionp data)
(funcall data arg)
data)))

直前の文字列が「今日は」だったら'@' を skk-today とか
出来るようにしようかとも妄想したけど、使う人いるだろうか??

619 :580 :01/12/23 18:44
さっきまでのは一行目が空行の時に2行目の行頭で
エラーになるバグがあった。
diff しても小さくならんので全部のっけます。

(defun my-skk-dynamic-insert (arg)
(let* ((str (char-to-string last-command-char))
(alist (nth 1 (assoc str my-skk-dynamic-insert-rule-list)))
(regexp-list (mapcar (lambda (l)
(car l))
alist))
(default-data (cdr (assq t alist)))
(pos (if (and (bolp)
my-skk-dynamic-insert-ignore-CRLF)
(1- (point))
(point)))
(str-before (unless (< pos 2)
(char-to-string (char-before pos))))
(idx 0)
(data (cond
;; my-skk-dynamic-insert-rule-list を後から修正して
;; 対応するエントリが無くなった場合の fail safe
((null alist)
str)
((null str-before)
default-data)
(t
(while (not (let ((regexp (nth idx regexp-list)))
(or (eq regexp t)
(string-match regexp str-before))))
(setq idx (1+ idx)))
(cdr (nth idx alist))))))
(if (functionp data)
(funcall data arg)
data)))

620 :580 :01/12/23 23:19
妄想を実装してみた。

(defun my-skk-dynamic-insert (arg)
(let* ((str (char-to-string last-command-char))
(alist (nth 1 (assoc str my-skk-dynamic-insert-rule-list)))
(regexp-list (mapcar (lambda (l)
(car l))
alist))
(default-data (cdr (assq t alist)))
(idx 0)
(data (cond
;; my-skk-dynamic-insert-rule-list を後から修正して
;; 対応するエントリが無くなった場合の fail safe
((null alist)
str)
((bobp)
default-data)
(t
(while (not (save-match-data
(save-excursion
(let ((regexp (nth idx regexp-list))
pos)
(when (and (bolp)
my-skk-dynamic-insert-ignore-CRLF)
(backward-char))
(setq pos (point))
(or (eq regexp t)
(and (re-search-backward regexp nil t)
(string= (buffer-substring-no-properties (point) pos)
(buffer-substring-no-properties (match-beginning 0)
(match-end 0)))))))))
(setq idx (1+ idx)))
(cdr (nth idx alist))))))
(if (functionp data)
(funcall data arg)
data)))

使用例:

(setq my-skk-dynamic-insert-rule-list
'(("."
(("[-0-9,.\n]" . ".")
("[−0-9,.]" . ".")
(t . skk-current-kuten)))
(","
(("[-0-9,.\n]" . ",")
("[−0-9,.]" . ",")
(t . skk-current-touten)))
("-"
(("[-0-9,.\n]" . "-")
("[−0-9,.]" . "−")
(t . "ー")))
("@"
(("今日は" . skk-today)
(t . "@")))))

621 :名無しさん@お腹いっぱい。 :01/12/24 05:16
おもろい事やってるね。>>620 を拡張して
12.3 * 45.6 の後の時だけ = で計算するように
してみようとおもったけど、re-search-backward って
結構クセがあるね。
"[^0-9]\\([0-9]+\\.\\([0-9]+\\)?\\) ?\\([*/+-]\\) ?\\([0-9]+\\.?[0-9]*\\)"
とすると上のにはマッチするけど、12*45.6 には
マッチしなくなってしまう。
my-skk-dynamic-insert を利用せずに skip-chars-backward
を利用した独自関数作ったほうが早いか。

622 :名無しさん@お腹いっぱい。 :01/12/24 05:27
>>621
なんで右項と左項の正規表現が違うの?

\\<\\([0-9]+\\.?[0-9]*?\\)\s ?\\([*/+-]\\)\s ?\\([0-9]+\\.?[0-9]*\\)
とかじゃ駄目なの?
よくわかってないのでsage

623 :名無しさん@お腹いっぱい。 :01/12/24 05:30
>>620
ルールのとこに関数とか一般的な変数も置けたらおもしろいんじゃない?
モード毎に入力の意味変えたり出来そうで。

624 :580 :01/12/24 07:02
>>623
確かに面白そうですね。でも rule-list の仕様を
どうしたらいいかな?
後、関数だったら add-hook みたいな形式だと
funcall で既存の関数でも lambda 式でも呼べる
みたいで楽だけど、でも lambda 式だと rule-list が
異様にゴチャゴチャしそう。
変数は (eval (quote VAL)) すればいけるみたい。
ただ、僕は lisp (もそれ以外も)全然詳しくないので
今のままだと例えば

(setq my-skk-dynamic-insert-rule-list
'(("."
(("[-0-9,.\n]" . ".")
((func-foo . function) . "。")
((val-bar . variable) . ".")
(t . skk-current-kuten)))))

みたいに明示的にしないとダメです。あまり
嬉しくないですね。あと変数や関数の返り値が t だったら
ある文字にする場合と、返り値をそのまま使う場合と用意しないと。
;; これは (func-foo . function)というコンスセルを止めて
;; (func-foo function t)みたく3番目の引数で指定すればいいか。

誰かやってみませんか?
それと仕様募集中です。

625 :名無しさん@お腹いっぱい。 :01/12/24 08:55
>>624

似たようなことしてる、Wanderlust の wl-draft-config-exec だと、
stringp だったら、正規表現と見なして、それ以外は eval しちゃってる。

それを参考にして..
戻り値をそのまんま使う場合、cdr が nil なら、ってのでいいような。
空文字入力は "" って線で。

(setq my-skk-dynamic-insert-rule-list
'(("." (("[-0-9,.\n]" . ".") # stringp がマッチだよん。
(((func-foo) . "。") # eval で ok
(((func-bar 1 2) . "○") # eval で ok
((val-bar . ".") # eval で ok
((hoge-mode . "") # eval で ok
((get-kuten) . nil) # eval で ok 戻り値使う。
(t . skk-current-kuten))))))) # eval で ok


どうでしょう。

626 :名無しさん@お腹いっぱい。 :01/12/24 08:58
>>625
括弧の対応変でした...

(setq my-skk-dynamic-insert-rule-list
'(("." ("[-0-9,.\n]" . ".") # stringp がマッチだよん。
((func-foo) . "。") # eval で ok
((func-bar 1 2) . "○") # eval で ok
(val-bar . ".") # eval で ok
(hoge-mode . "") # eval で ok
((get-kuten) . nil) # eval で ok cdr ->nil なので戻り値使う。
(t . skk-current-kuten)))) # eval で ok

です。

627 :580 :01/12/24 10:44
>>625
どうもです。
案外 eval で殆どいけちゃうんですね。
lambda な場合も functionp だったら funcall と
いう事でいけそうな事に気付きました。
あと、re-search-backward した時の match-data を
渡せたらちょっとした小物が手軽に作れていいかもと
>>621 を読んで思いました。
でもそうすると
rule-list が複雑になってしまうなぁ。
一応
(("[a-z]" (func arg)) . nil)
こーいうフォーマットを考えついて、これだと

(let ((tmp '(("[a-z]" (func arg) . nil))))
(and (listp (car tmp))
(stringp (caar tmp))))

という事で listp と eq で他と区別はできる。
;; かなりゴチャゴチャしてるけど、t を他のシンボルにすれば
;; 拡張もできるし、コンスセルでなくリストなので、
;; func が lambda でも arg の引数を自由に追加できる。
あと my-skk-dynamic-insert-ignore-CRLF の値をキー毎に
切り替えれたらいいかもと思ってみたり。
;; 流石に関数毎には無理そうです。

628 :名無しさん@お腹いっぱい。 :01/12/24 11:11
>>627
関数定義するぐらい拘る人だったら、

(lambda ()
(let ((my-skk-dynamic-insert-rule-list t))
(progn ..)))

ぐらいするんじゃないかな。

なんか、すごいものに昇華しそうな予感。
文脈に依存した入力ってやつだよね。これ。

たとえば、c-mode だったばあい、
"..." /* .. */ とかの中身を使いわけられるわけだし。
そこまで使いわける人がいるかはおいといて。

<h1 lang="ja">...</h1> のときと <h1 lang="en">...</h1>のときの挙動かえたりとか...

さらに発展して、文脈に依存した変換とか、モード切り変えなんてできたら...
あぁ、妄想がふくらんでくー。

629 :名無しさん@お腹いっぱい。 :01/12/24 18:44
abbrev-mode の拡張版みたいで面白いね.
skk の利用法の発展ではあるけど,
用途は skk にとどまらないな.

630 :580 :01/12/24 19:21
なんか一日潰してしまった。ヘボいなぁ >自分

多分いろいろバグがあると思いますが、とりあえず。
いろいろツツいてください。

まずは rule-list の例

(setq my-skk-dynamic-insert-rule-list
'(("."
;;カーソル以前の文字列を正規表現で比較 cdr が入る
("[-0-9,.\n]" . ".")
;;"hoge" で re-search-backward で検索したときの (match-data) の値を md として
;; func に渡す。その結果が non-nil なら"."
;; ちなみに md の他に arg も使え、これは my-skk-dynamic-insert自身の引数である
(("hoge" (func md)) . ".")
;; 同様。 誰が使うんだ (^^;; おまえ、実装してみたいだけちゃうんかと...
(("fuga" (lambda (arg md) BODY)) . "●")
;; 関数の返り値が non-nil なら "。"
;; dynamic-scope なので、arg と書くと my-skk-dynamic-insert自身の arg が入る
((func arg) . "。")
;; 引数はいまのとこサポートしてない
;; rule-list が複雑になる & 使いにくそうだし
;; (arg ぐらい渡してもいいかもしれんが、arg の価値がよく分らんし... 上と矛盾してる)
;; (単にこれ書いてる今になってコード書き忘れたのに気付いただけ)
((lambda () BODY) . "◎")
;; 変数が non-nil なら "○"
(variable . "○")
;; どれにもマッチしない時は t に指定してあるものが選ばれる
(t . skk-current-kuten))
(","
((.....)))))

ちなみに単純な正規表現マッチの場合を除いて、cdr を `t' の指定をする事で
関数 or 変数 の値が返り値 => バッファに入る
;; nil でないのは実装上の都合です。nil 以外のシンボルなら構わないのですが

631 :580 :01/12/24 19:32
;; 以下では rule-list に
;; ("[-0-9,.\n]" . ",")
;; このようにあるとき、"[-0-9,.\n]" を COND,
;; "," を VAL と呼ぶことにする。(って、使うかな??)

(defun my-skk-dynamic-insert (arg)
(let* ((str (char-to-string last-command-char))
(alist (nth 1 (assoc str my-skk-dynamic-insert-rule-list)))
(cond-list (mapcar (lambda (l)
(car l))
alist))
(default-data (cdr (assq t alist)))
(idx 0)
data cnd md use-match-data)
(catch 'return
;; my-skk-dynamic-insert-rule-list を後から修正して
;; 対応するエントリが無くなった場合の fail safe
(when (null alist)
(throw 'return str))
(dolist (cnd cond-list)
(cond
((or (stringp cnd) ;("[-0-9,.\n]" . ".")
(and (listp cnd) ;(("[a-z]" (func arg)) . nil)
(stringp (car cnd))
(setq use-match-data t)))
(setq data (cond
;; 一応 REGEXP によるマッチングは現状ではカーソル以前の文字列しか使えないので。
;; 実装するつもりも暇も無い。rule-list がややこしくなりそう。
;; もしやるなら looking-at 利用が効率いいかな? > やってみたい人。
((bobp)
default-data)

632 :580 :01/12/24 19:33
(t
(save-match-data
(save-excursion
(let ((regexp (if use-match-data
(car cnd)
cnd))
pos)
(when (and (bolp)
my-skk-dynamic-insert-ignore-CRLF)
(backward-char))
(setq pos (point))
(when (and (re-search-backward regexp nil t)
(string= (buffer-substring-no-properties (point) pos)
(buffer-substring-no-properties (match-beginning 0)
(match-end 0))))
(setq md (match-data))
(cdr (nth idx alist)))))))))
;; この時点の data は rule-list の VAL
(when (and data
use-match-data)
;; match-data を用いて出力を生成 or 条件判定
;; この時の条件は
;; (("[a-z]" (func arg)) . nil)
;; or (("[a-z]" (lambda (arg) BODY) arg) . nil)
;; my-skk-dynamic-insert 自体の引数は arg。
;; (この仕様は skk-make-raw-arg を見ると分る。なにに役立つんだろう?)
;; match-data の内容は md。
;; lambda 式には arg, md の順で与える。(ので、そのつもりで定義するように >利用者)
(setq data
(let* (;;func (nth 1 cnd)) ;; なんか分らんくなってしまった... ヘボ >自分
(retval (if (functionp (nth 1 cnd))
(funcall (nth 1 cnd) arg md)
(eval (nth 1 cnd)))))
(when retval
(if (eq data t)
retval
data)))))
;; この data はまだ skk-current-kuten のように文字列でない可能性がある
;; あとでまとめて処理
(when data
(throw 'return data)))

633 :580 :01/12/24 19:35

((functionp cnd) ;((lambda (arg) BODY) . nil)
(let ((retval (funcall cnd))
(val (cdr (nth idx alist))))
(setq data
(when retval
(if (eq val t)
retval
val))))
(when data
(throw 'return data)))

(t ; 一般的な lisp 式はここで
(let ((retval (eval cnd))
(val (cdr (nth idx alist))))
(setq data
(when retval
(if (eq val t)
retval
val))))
(when data
(throw 'return data))))
;; cond を抜けた
(setq idx (1+ idx)
;; 初期化
use-match-data nil)))
;; catch & dolist を抜けた
;; VAL が skk-current-kuten だったり、func が関数のシンボルを返してる場合の処理
(cond ((stringp data)
data)
((functionp data)
(funcall data arg))
(t
(format "%S" data)))))

;; 3回にも分ける必要があるなんて、面倒スギ

634 :名無しさん@お腹いっぱい。 :01/12/26 00:42
lkk 使ってる人いる?
apel 不要はちょっと嬉しいかな、と。

635 :名無しさん@お腹いっぱい。 :01/12/26 02:49
lisp の拡張の簡単さのおかげで
emacs 自体も emacs 関連のパッケージも
ほとんど膨張していく運命にあるような

636 :621 :01/12/26 08:12
でけた。
"\\([^0-9.]-?[0-9]+\\(\\.[0-9]+\\)?\\) ?\\([*/+-]\\) ?\\(-?[0-9]+\\)\\(\\.[0-9]+\\)?"

637 :名無しさん@Emacs :01/12/26 10:05
激しくレベル高いな。勉強してこよ。

638 :名無しさん@お腹いっぱい。 :01/12/26 12:17
>>635
そうだね...
いじりやすいってのも罪なんだろうか。

639 :名無しさん@お腹いっぱい。 :01/12/26 13:25
とても面白そうだったのでコード拡張(?)してみました。
ちなみに looking-at を加えて lambda 対応は省きました。
# これってどういうメリットがあったんでしょうか?
# よく分らなかったのと、変数でも関数でもあるシンボル
# への対応が面倒だったので無くしちゃいました。

my-skk-dynamic-insert-rule-list の形式も変えてみました。
'((INPUT-STATE NEXT-STATE
(;; looking-at が nil なら re-search-backward()
;; (- (point) limit) を re-search-backward の
;; LIMIT に渡す
(REGEXP looking-at ignore-lf limit S-EXP . VAL)
;; looking-at が non-nil なら looking-at()
;; b-regexp が指定されていれば、その条件で
;; re-search-backward してから looking-at する
;; limit は re-search-backward の際に使われる
(REGEXP looking-at b-regexp limit S-EXP . VAL)
;; 上以外
(S-EXP . VAL))))

looking-at, ignore-lf, limit, S-EXP は不要であれば
書かずにすみます。つまり
(REGEXP looking-at ignore-lf limit . VAL)
(REGEXP looking-at ignore-lf . VAL)
(REGEXP looking-at . VAL)
(REGEXP . VAL)
これら全て ok です。指定されてなければ nil として扱います。
# 一番下の形式だと re-search-backward となります。
ignore-lf が明示的に指定された時には、
my-skk-dynamic-insert-ignore-CRLF を上書きします。

VAL は 文字列 or 関数のシンボル(arg付きで呼ばれる) or 変数 etc.
>>616 とは変えて、nil だと S-EXP の評価値になるようにしました。
looking-at の際に re-search-backward できるのは、こっちのほうが
context を考慮しやすいだろうと判断したからです。
# skip-chars-backward と迷ったのですが、こっちのほうが
# 柔軟に対処できそうなので。あまりオプション増すと
# 大変なので、これ以上の事がしたければ REGEXP でなく
# S-EXP のほうで対処してもらうという事で。

640 :名無しさん@お腹いっぱい。 :01/12/26 13:40
begin 664 my-skk-dynamic-insert.gz
M'XL("#%2*3P``VUY+7-K:RUD>6YA;6EC+6EN<V5R=`"]6$^+'$44O_LI'@&Q
M1BEQ-_&TF(L@"#D9OT!-=\U,,3U=D^KJW<W'B:D%(8O&0]@D9I,URB11=Q)/
MW@,BR0K"*!X\B*^J_\]T3_>L8!T6INO]WJOW>W_JU1*?#^(0)M=I-!Y3_WK(
M)L*C(HRXTD"8&O;>`"`!UV\#(9%60+P14U1+BC]$.(2`19IZ<C)AH4_M7L\B
MTD54''#*`A&ALE"/8`MU1I'TP*JJ-4H=Q")Z%4UX3KK+`K3O*Z?D&F@HU%>%
MA;\/[Y4^6*`7*Z<;O-!/MHC'M#>"MQ37L0I3Z9V=MG.!6=S]Q=PRKX[-R1US
M9&8%\O&+K_XQ]\S9P><'?QP\/7AM#G^\8[XTWYMOS:.'O]W[U<QAP$0`$1OP
M%$7V1CQ$<N(@*+N3GYWHD9)[V2$M;[FGQ)<)L[EKM0HBKJ]9IZV_*J>AQ!?Q
M9.B7V"-):*<%4^D&I@&0@8Q15T3Y_A0FM"*0&4.Z*U]KS90V2%_VI[VZ+4C#
M7KM)="V$1&R7TXF-+?699K5"F1C?1T(B(<,&J2+Y126C&F05'UI>EHAKD"UB
MT2J["V2JY+#YE!7IO9'`9""AM"6LY00J1;D>ZP(H@&R]`Z(K*%DJJ4W5ZVBL
MPZ$"RD#08`!]FC(;B`E,9;0.B75(MF`;+L(E>!?>[X&9'WWSX+99W)^?_F3K
MU1AS9N;F28L.VZ]"N/+QU4]1Q<*6M?G!/$=N+N-G\\1\9LZ^_LL</CL\_7F-
M)I?U0F.&48]%'$)15QL5A`N!=3UMF9W3Q"W'ET-N;XC,2;8J.B%L-)RIBQN:
M2MJ'@UZJ:TEUBW"EY/JD:6PQN0#2NM8(!CZ0<HSMC[+Z]I*K<HT[XZPMIHK3
MB#.%+:G/O/$>4WY7:+-M9/\<6$13["92A+IG5?1ZL//L%::VO:5FYB7(\3FT
MZK;@)==<P2TDSK>E2U(,R9VS/A[9PCL)2-']6YO,[GJ)ADLF6Y@OJZ'MP@2S
M%W)?!JT,%$"!=7T9^\_V1GVY<S&[53_[B&$HT<T//[GR42N?)&-A91JL$W;A
MQ8:>962G+'+<U534N>MIR<!Y"ZM0LU1A_T6;[IX@R=SV`88@'@RXHE'<3S[1
M4%*<'Z882\&CS4^3.=-R\S:`DV*L.PF.5.WY]']T@'15!.U+(%>"$P`.#\;,
MCE_,GYO%R=V3+T`J>+@X^OWI\7>O5X"U[ZD'MQ[/S?SVWX_^Q#D"WU8W;I8-
MS&<O3V>X@<>_<;,Z51=I[WAH\L?=JLO>KAO)LYD>BTF[QQ6W?Q,UC;0EITD0
MS5,SDK-NWZY$Q2KQB8%5]-)3*,66'B[E]*ASS([EJU[9X=H.KL48LL&;IHT+
MQT,C"P4#Y9/7NM_B?#JWX[O73>[^?K[K9J+2HV[Y-;7TFY!!''IV7ET5=5L,
@'ZJ63/N_@0I05T6EPN2&"V]>O0!YE/\%$`-ZE6X0````
`
end

uudecode してから gunzip してください。
# 変数自分好みにかなり変えちゃいました。すいません。
# あと ML に出しません? >>580

641 :名無しさん@お腹いっぱい。 :01/12/26 14:13
'((INPUT-STATE NEXT-STATE
(...)))

と変えようと提案したのにコードが対応してなかった...。
パッチです。
3c3
< (rule-alist (nth 1 (assoc str my-skk-dynamic-insert-rule-list)))
---
> (rule-alist (nth 2 (assoc str my-skk-dynamic-insert-rule-list)))
11c11,12
< (throw 'return str))
---
> (setq val str)
> (throw 'return val))

642 :名無しさん@お腹いっぱい。 :01/12/26 14:51
ML にて発見されました。
なんかやる気でるっす。

643 :580 :01/12/26 15:33
>>639
素晴らしいです。

>ちなみに looking-at を加えて lambda 対応は省きました。
># これってどういうメリットがあったんでしょうか?

言われてみれば、特にないですね (^^;;;
暴走しちゃってたようです。しかも
>変数でも関数でもあるシンボルへの対応
とか忘れてるし (^^;;;

>my-skk-dynamic-insert-rule-list の形式も変えてみました。

全然おっけーです。というか、めっちゃスッキリしていい感じです。
しかも looking-at の時の re-search-backward とか、すごく
実用的な気がする。

># 変数自分好みにかなり変えちゃいました。すいません。
いえいえ、お気になさらずに。
># あと ML に出しません? >>580
ごめんなさい。ML に出てくタイミング、完全に失いました。
639 さんが変わりに投稿してくれたりするととても嬉しいのですが...
;; 身勝手でごめんなさい。
;; できれば SKK の貢献者に 580@2ch とか万一にもならないことを
;; 希望します...

644 :名無しさん@お腹いっぱい。 :01/12/27 11:12
▽モードで C-q を押して半角カタカナに変換すると、
例えば、
「▽うまー」→「ウマ-」
となってしまいます。

skk-jisx0201-mode では、「-」→「ー」となるので、
不統一であるように思います。「ー」の方が 2ch 的には
嬉しいし(w

645 :名無しさん@お腹いっぱい。 :01/12/27 16:13
>>643
後で ML に出してみようと思います。

書き忘れてたけど、仕様を変えたので、
skk-rom-kana-rule-list への append は

(setq skk-rom-kana-rule-list
(append skk-rom-kana-rule-list
(mapcar (lambda (l)
(list (car l)
(cadr l)
'my-skk-dynamic-insert))
my-skk-dynamic-insert-rule-list)))
となりますね。

646 :名無しさん@お腹いっぱい。 :01/12/27 22:36
>>644
俺が試してみたら emacs20 か 21 かで
▽うまー [C-q] のハイフンが違った。
21 だと、お望みの結果に。


掲示板に戻る 全部 前100 次100 最新50

read.cgi ver5.26+ (01/10/21-)