SKK専用スレッド Part4
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG前スレ SKK専用スレッド Part3
http://pc.2ch.net/test/read.cgi/unix/1033003685/
Part2: http://pc.2ch.net/unix/kako/1013/10132/1013245211.html
Part1: http://pc.2ch.net/unix/kako/975/975253214.html
関連リンク等は>>2-5くらい
0438名無しさん@お腹いっぱい。
NGNGとかの変換で死ぬやつじゃなかったっけ?
0439名無しさん@お腹いっぱい。
NGNGその再現条件が >>437 だったと思う。
ちなみに死ぬのではなく、高負荷になって反応が返ってこなかったはず。
0440名無しさん@お腹いっぱい。
NGNG0441名無しさん@お腹いっぱい。
NGNG0442名無しさん@お腹いっぱい。
NGNG0443名無しさん@お腹いっぱい。
NGNG> ERROR: wrong # of arguments(0 for 1)
こんなリンクが出来てる。よさげ。
> Comments in the last 5 days
0444名無しさん@お腹いっぱい。
NGNGカヲルさんがんばるね。
0445名無しさん@お腹いっぱい。
NGNGemacs -nw なEmacs21上でカーソルの色づけってできるんですか?
info参考にして
(setq skk-use-color-cursor t)
(setq skk-hiragana-cursor-color "blue")
(setq skk-katakana-cursor-color "cyan")
(setq skk-ascii-cursor-color "green")
とかしてみたんですが、うまく動作しないのです。
Xでは上記の設定無しでもうまくいくのですが・・・
何かご存知の方おられましたらご教授下さい。。。
0446名無しさん@お腹いっぱい。
NGNG変換対象の文字列には色付くけど、カーソルは無理。
がんばれば modeline の色変更とかで状態を示すように
改造できるとは思うけどね。
0448名無しさん@お腹いっぱい。
NGNGモードラインの色変える方法調べてみた。
とりあえず SKKを起動してから、
skk-e21.elの skk-e21-prepare-modeline-properties()
から when window-system って条件を潰したものを評価。
;; 好みで dolistする modeに latinを加えるといいかも。
次に skk-macs.elの skk-mode-string-to-indicator() からも
window-systemの条件を潰す。これは defsubstなので、
skk.elの skk-make-indicator-alist-1() を評価。
あとは
(skk-e21-prepare-modeline-properties)
(skk-setup-modeline)
を評価すればおっけー。
"skk-e21-%s-face" (hiragana katakana jisx0208-latin jisx0201 latin abbrev)
は個別に設定する必要あり。
0449名無しさん@お腹いっぱい。
NGNG意味分かんね
0450名無しさん@お腹いっぱい。
NGNG0451名無しさん@お腹いっぱい。
NGNG0452名無しさん@お腹いっぱい。
NGNG0453名無しさん@お腹いっぱい。
NGNG「にっぽんだいひょう」とか。
0454名無しさん@お腹いっぱい。
NGNG今の skk だと
「にっぽんだいひょう」が変換できなかったときに
「日本」と「代表」を出すために
もう一度「にっぽん」「だいひょう」と打たなきゃいかんのよね。
どこで区切るかだけを指定して再変換、
みたいなのができるとうれしいかも。
0455名無しさん@お腹いっぱい。
NGNGで出来ますよ。
でも、SKK は辞書にない単語を変換すると自動的に辞書登録モードに入るように
なっていますし、そのまま登録した方が早いと思います。登録すれば次から変換
できますし。
ひょっとして登録モードで、もう一度 にっぽん だいひょう と打つのが面倒だ
という話でしょうか?
0456名無しさん@お腹いっぱい。
NGNG以前もスレに貼った気がするけど。
;; ミニバッファ行頭にて `Q' を入力した時は、skk-henkan-key を補完
(defvar skk-henkan-key-org nil)
(defadvice skk-henkan-in-minibuff (around minibuff-complete-ad activate)
(let ((skk-henkan-key-org skk-henkan-key))
ad-do-it))
(defadvice skk-set-henkan-point-subr (around minibuff-complete-ad activate)
ad-do-it
(when (and (skk-in-minibuffer-p)
;; (with-current-buffer (skk-minibuffer-origin) skk-henkan-key) とか
skk-henkan-key-org
(equal last-input-event
(if (featurep 'xemacs)
(character-to-event ?Q)
?Q))
;;行頭の"▽"の直後
(= (point)
(1+ (if (fboundp 'minibuffer-prompt-end)
(minibuffer-prompt-end) 1))) ; point-min
;; カーソル以後に文字が無い
(not (char-after)))
(save-excursion
(insert skk-henkan-key-org))))
>>453
むりしてまで SKK 使わなくていいよ。
0457456
NGNGad-do-it とか削ってください。ゴミでスマソ。
あと skk-henkan-key-org とかは廃止できるかなと思ったけど、
(with-current-buffer (skk-minibuffer-origin) skk-henkan-key) では
再帰的な登録では駄目ね。なにぶん書いた時の事忘れてるもので。
0458あぼーん
NGNG0459名無しさん@お腹いっぱい。
NGNG0460名無しさん@お腹いっぱい。
NGNGたまに普通の IME 使っても大文字で入力して変なことになったり、単語単位で変換して逆に効率悪くなったり
0461名無しさん@お腹いっぱい。
NGNGにあるのに、それでも変換出来ないものが多々ある(eg.「函館方面」)ことを考
えると、これくらいは">"の付いたエントリから自動生成してくれるといいのに
なと思ったりはしまつ。ハイ。
0463名無しさん@お腹いっぱい。
NGNG0464453
NGNG「物理変化」は切って入力しますか?
「砂漠化」「工業化」「形骸化」…
SKKってちょっと普段と違う言葉使おうとすると一事が万事この調子なのが良くない。
0465名無しさん@お腹いっぱい。
NGNGだから ATOK とかに乗り換えれば?
間違っても自分が使うからと、なんでもかも L辞書に登録するなよ。
0466名無しさん@お腹いっぱい。
NGNG1年ぐらい前から、'Sabaku >ka 'みたいな変換したら
勝手に「さばくか /砂漠化/」って候補が個人辞書に入るじゃん。
(俺はこの機能のせいで、気楽には > を使えなくなってしまったけど)
シームレスに辞書登録できるのが SKKのいいとこなんだし、
>>456 のコードもセットで使えば殆ど問題無い。
0467名無しさん@お腹いっぱい。
NGNG> 使え。
0468名無しさん@お腹いっぱい。
NGNG結局その語の使われ方によるね。
化学変化、正規表現、日本工業規格なんかは
一つの特定の概念を指すことが明確だから、あってもおかしくない。
物理変化は変換されないけど、そういう専門用語があるなら
登録されててもいいんじゃない?
0469名無しさん@お腹いっぱい。
NGNG全部登録しろ。
skkdic-expr ~/.skk-jisyo - ~/share/dict/SKK-JISYO.L|skkdic-count
866 candidates
0470名無しさん@お腹いっぱい。
NGNGskk-search-with-suffix() ってのが skk.el にあるから、
「砂漠化」みたいなのを完全にシームレスに入力したけりゃ、
search-prog-list に追加したら?
試しに ">" を加えずに連接するよう書換えてみたが、
ちょっとこれは嬉しくなかった。
「>変化」みたいなエントリ用意して skk-search-with-suffix で使用するか、
suffix じゃないけど連接でよく使う語のリストを予め用意しといて、
それらを join するのがいいかもね。
「|じょうせい /情勢/」「|へんか /変化/」みたいなエントリ作ってしまうと
実装がめちゃ楽(っつーかパクリ)になる。
0471名無しさん@お腹いっぱい。
NGNG>か /下/化/科/課/家/可/
>かん /感/間/艦/館/観/官/管/
「砂漠化」「柔道家」「数学科」のように、この手のsuffixが付く語は
自動生成とか小細工せずにL辞書に追加していく方がよいと思われ。
">"では「砂漠家」「柔道可」「数学化」とか出てカナワン
逆に、「>へんか」なら「変化」しかないだろうから>>470のような
アプローチがよさそう。
0472名無しさん@お腹いっぱい。
NGNGRootでも入力はできるけど、なんとかならんかな・・・
0473名無しさん@Emacs
NGNG0474名無しさん@お腹いっぱい。
NGNG0475名無しさん@お腹いっぱい。
NGNG0476名無しさん@お腹いっぱい。
NGNG感謝感謝の一言です。
凄い遅いマシンだとシフト入りっぱなしになってしまうのだけが
玉に瑕。
0477名無しさん@お腹いっぱい。
NGNG0478名無しさん@お腹いっぱい。
NGNG「恐い」「汗臭い」の「い」を消すんじゃだめ?
よく使うなら登録しちゃえば。
0479名無しさん@お腹いっぱい。
NGNG0480名無しさん@お腹いっぱい。
NGNG0481名無しさん@お腹いっぱい。
NGNGskk-search-all-progs() を改変して
skk-search-all-progs-with-okurichar-i() を用意。
skk-henkan-okurigana を nil → ""
skk-okuri-char を nil → "i"
にそれぞれ束縛するように。
(defun skk-search-with-xtu-or-tyouon ()
(let ((str1 (substring skk-henkan-key 0 (1- (length skk-henkan-key))))
(str2 (substring skk-henkan-key (1- (length skk-henkan-key))))
tmp-list)
(when (or (string= str2 "っ")
(string= str2 "ー"))
(setq tmp-list (skk-search-all-progs-with-okurichar-i (concat str1 "i")))
(mapcar #'(lambda (s)
(concat s str2))
tmp-list))))
(nconc skk-search-prog-list '((skk-search-with-xtu-or-tyouon)))
「こわi」とか「あせくさi」が辞書にある事が前提。
0482名無しさん@お腹いっぱい。
NGNG0483名無しさん@お腹いっぱい。
NGNGフォームに大量に出てる削除希望の登録希望度をsageられたし。
登録と違って票が集まらんと削除されんからなかなか進まんのよ
0484名無しさん@お腹いっぱい。
NGNG0485名無しさん@お腹いっぱい。
NGNG0486名無しさん@お腹いっぱい。
NGNGようにすることはできますでしょうか
0487名無しさん@お腹いっぱい。
NGNG% cp .skk-jisyo .skk-jisyo.bak
% skkdic-expr2 .skk-jisyo.bak - aru-tokutei.jisyo > .skk-jisyo
0488名無しさん@お腹いっぱい。
NGNGそれとも、やっぱり、気づいたときに逐一登録してます?
L辞書などから変換候補が一個しかないものを抽出したらいいような気もするけど、
スクリプト書ける人はそうしてるんだろうか。
0489名無しさん@お腹いっぱい。
NGNG> L辞書などから変換候補が一個しかないものを抽出したらいいような気もするけど、
> スクリプト書ける人はそうしてるんだろうか。
スクリプトの出番もないよ。grep一発。
10万以上エントリのある確定辞書が嬉しいかどうかは知らんが・・・
しかし、どのみち次のキー押せば(暗黙の)確定するのにわざわざ確定辞書を使う
メリットは良くワカランので使ってない。誰か力説きぼん
0490名無しさん@お腹いっぱい。
NGNG考えてみた。
(setq skk-exclude-jisyo "~/.skk-jisyo.exclude")
(setq skk-search-excluding-word-pattern-function
;; この関数が non-nil を返したときは、その文字列は個人辞書に取り込まれない
;; KAKUTEI-WORD を引数にしてコールされるので、不要でも引数を取る必要あり
#'(lambda (kakutei-word)
(or (and skk-abbrev-mode
(save-match-data
;; SKK-HENKAN-KEY が "*" で終わるとき
(string-match "\\*$" skk-henkan-key)))
(let* ((func (lambda (w)
(if (string-match ";" w)
(substring w 0 (match-beginning 0))
w)))
(kakutei-word
(funcall func (nth skk-henkan-count skk-henkan-list)))
(excludes
(mapcar func
(skk-search-jisyo-file skk-exclude-jisyo 0 t))))
(member kakutei-word excludes)))))
skk-search-excluding-word-pattern-function にこんな感じで、
let*以降の部分を自分の既存の設定に or でくっつければいいかと。
ちなみに上の例は、skk-look を使った曖昧変換も取り込まない。
skk-exclude-jisyo に大きなものを利用するなら、
(skk-search-jisyo-file skk-exclude-jisyo 0 t) の 0 を
10000 とかにしたほうがいいですが、その場合辞書は
ソートされてる必要があります。
0491490
NGNG数値変換で問題がありますので、
(if (string-match ";" w)
(substring w 0 (match-beginning 0))
w)))
の上に
(if (consp w)
(setq w (car w)))
を追加しといてください。
0492420
NGNGいておきます。
~/.Xmodmap
keysym Zenkaku_Hankaku = Henkan_Mode
~/.Xresources
Skkinput*xim.conversionStartKey: <Key>Henkan_Mode
~/.skkinput
define-key-skkmap: ("\Henkan_Mode" . "close-skkinput")
0493492
NGNG0494名無しさん@お腹いっぱい。
NGNGどうも有難うございます。skk-search-excluding-word-pattern-function なんてな関数が
用意されていたんですね。書いて下さったコードを参考に色々と試したいと思います。
0495教えて君
NGNGそのクライアントを動かすためには skkserv や rskkserv の
サーバプログラムが、あらかじめ必要なんでしょ?
なのに ps aux や nmap localhost をしてもサーバプログラムが
起動している様子がありません。でも、kterm 上で skk は動作している。
これは、どういうことなんでしょうか?
0496名無しさん@お腹いっぱい。
NGNGその ktermの上で動いてる skk ってのは
elisp の SKK(つまりDDSKK)なのか、
skkinput なのか、どっちなんでしょう?
また、それが skkinput だとして、
skkinputの起動後もサーバプロセスの有無を調べてみたのでしょうか?
0497名無しさん@お腹いっぱい。
NGNGman より引用
skkinput は、SKK に付属している skkserv と BSD 系 UNIX の
ソケットを利用してかな漢字変換を行います。skkserv が利用で
きない場合にローカル辞書だけを用いて日本語入力が可能です。
た だ し、skkserv を起こしに行く機能はサポートしておりませ
ん。
0498名無しさん@お腹いっぱい。
NGNGそのローカル辞書って、.skkinput-jisyo と .skk-jisyo
だけだよね?
# L辞書を個人辞書としてしまえば一応使えるという事にはなるが…
0499名無しさん@お腹いっぱい。
NGNG0500名無しさん@お腹いっぱい。
NGNG; skkinput ユーザ辞書のパスを指定します.
skkinput-jisyo: "~/.skkinput-jisyo"
; skkinput ユーザ辞書のバックアップのパスを指定します.
skkinput-backup-jisyo: "~/.skkinput-jisyo.BAK"
; skk ユーザ辞書のパスを指定します.
skk-jisyo: "~/share/dict/SKK-JISYO.L"
0501教えて君
NGNGありがとうございます。
確かに書いてありました。
もちろん、ドキュメントに完全に目を通さなかったおいらが悪いのですが、
開き直って言うなら、skkinput のドキュメントは全然なってないですね。
その理由として、「1.1 skkinput とは」というソフトについてごく当たり前の
紹介をする(と、ほとんどの読み手は考えているだろう)部分で、
「サーバーがなくても動作する」という、作者にとっては自明であるけども、
読み手にとっては重要なことを書いている。
2つ目は、FAQで
> インストール時に注意すべきことがあるとすれば、
>
> 1. デフォルトの skkserver の指定
> 2. デフォルトのフォント集合の指定
と、サーバーの設定は必須であるような表現をしている。
ドキュメントを隅々まで読まない方が悪いとはいえ、
もっと読み手にとって重要なことに優先順位を付けて、
客観的に分かりやすいドキュメントを作者は書くべきだと言える。
0502名無しさん@お腹いっぱい。
NGNG0503名無しさん@お腹いっぱい。
NGNGそういうことは開発側にフィードバックしましょう。
特に初心者の立場から見たドキュメントは後回しにされやすい部分ですから。
0504名無しさん@お腹いっぱい。
NGNGしない限り改善の可能性はゼロに等しいと思うけど、ね。
0505名無しさん@お腹いっぱい。
NGNGskk-jisyo で L辞書指定すると結構辛そうな気がするが。
リニアサーチだろうし。
一応書いておくと、skk-jisyo は elisp の SKK が使用する個人辞書を
指定する事が想定されており、共用辞書(システム辞書)を指定する事は
考えられていない。
# elispの SKKユーザ(大多数であろう)は発想もしないだろう。
上に書いてある方法はあくまで強引なものであり
(実際、L辞書を個人辞書にすれば…ってのはネタで書いた)、
501 の指摘は外れてると思われる。
0506名無しさん@お腹いっぱい。
NGNGだろうから、若干マニュアルが読みにくくても
気になんなかったんだろうね。
0507名無しさん@お腹いっぱい。
NGNG0508名無しさん@お腹いっぱい。
NGNG.skk-jisyoにくっつけてやると何故か変換できるようになる。
てなわけで、漏れの.skk-jisyoは.skkinput-jisyoへのsymlink。
0510名無しさん@お腹いっぱい。
NGNGトロイの木馬なら辞書に埋め込めると思う
CGIからの自動登録って結構やばいと思うのだが、
現存DOSアタックを仕掛けているので問題なし。
0511名無しさん@お腹いっぱい。
NGNGあー、大辞林とかに載ってる語のコメントを利用するってのか?
でも quote されちゃうから、危険な事は出来ないと思うけれど。
0512名無しさん@お腹いっぱい。
NGNGS 式実行機能のことじゃないの。
0513名無しさん@お腹いっぱい。
NGNG見出し語と単語のペアがそれらにないと○はつかない。
S式は大辞林とかに載ってるわけがなく、
よってこれらは自動では L辞書にコミットされない。
ところが S式は annotationにも利用できる。
そんなわけで、見出し語と単語のペアが大辞林に載ってる語を利用して、
その annotationに悪意あるコードを書いた時、
それが quoteされるかされないかが問題やね。
quoteされてれば、変換してもエコーエリアに
間抜けにもS式がそのまま表示されるだけ、
されてなければ実行されてしてしまう。
一般辞書については見出し語と単語のペアによるチェックがあるが、
人名辞書だとノーチェックで commitしてしまうらしい。
よって annotation のみならず、変換候補にS式書いても
機械的に処理される可能性がある。
# 実際にはチェックしてるかもしれない。このレスは
# http://openlab.ring.gr.jp/skk/registdic_info.html
# ここの情報のみを参考に書いてます。cgiのコードも見るべきやね。
現状、とりあえず自動で commitしてからコミッターが
調整するスタイルだから、cgiのコードによっては
もしかするともしかするかも。
不安な人は人名辞書 & annotationの利用を一旦中止すべきか?
>>510
> 現存DOSアタックを仕掛けているので問題なし。
どーいう事でしょうか?
0514名無しさん@お腹いっぱい。
NGNG万全を期すとしたって、新しい辞書取って来た時に
ちょいちょいと検査すりゃ済むことじゃん。
0515名無しさん@お腹いっぱい。
NGNGまぁ敢えてくそまじめに書いてみたんですよ。
ちょいちょい検査って、結構面倒だしね。
変換候補の一文字目や ";"の直後に "("があるような候補を
チェックするのも、スクリプト用意すればある程度楽にはなるけども。
それでも新規追加分のエントリのみを対象に検査するのって
ちょいと面倒だし、Changelog を対象にするのも、
あれはmanuedだから判定条件書くのが億劫だし。
一番楽なのは、毎週自動コミットされた後数日間は
避ける事かもね ;-)
0516名無しさん@お腹いっぱい。
NGNG0517名無しさん@お腹いっぱい。
NGNG0518名無しさん@お腹いっぱい。
NGNG0519名無しさん@Emacs
NGNG0520名無しさん@お腹いっぱい。
NGNG見出しのおかしい(短かい)語を絶えず学習し続けているというか、
使っていると.skkinput-jisyoの見出しが壊れるような。
た /立/
ち /地球/
ちょ /超/
>>519
直ったそうな。
0521名無しさん@お腹いっぱい。
NGNG例えば、「は」が一旦入力されたのちに何らかのキーが押下
されると「ぱ」に置換されるという具合です
0522名無しさん@お腹いっぱい。
NGNG例えばどのキーで「は→ぱ/ば」としたいですか?
方法考えてみるので。
0523522
NGNG俺の乏しい想像力では、そのような変換が便利なケースが思いつかないし、
無駄にデカいコードになりそうなので、ちょっと様子見しよ。
0524こういう話では、と推測
NGNG952 :名無しさん@お腹いっぱい。:03/08/10 17:58
松茸附属の設定ファイルから、漢直Win用の超絶技巧入力のテーブルファイルを
作成しようとしています。
ところが、例えば「kd = き、kd; = ぎ」という定義からは、「kd」を入力した時点で「き」を
出力し、次の入力が「;」であれば「き」を「ぎ」に置換する。さもなければ、次の文字の
第1打鍵とする。このような動作が求められますが、これは漢直Winのテーブルファイルで
定義可能なのでしょうか
953 :名無しさん@お腹いっぱい。:03/08/10 18:59
>>952
漢直Winではそれは無理だと思います。
954 :952 :03/08/12 00:35
>>953
やはりそうですか。うーん、どうしようか…
0525名無しさん@お腹いっぱい。
NGNGこういうの skk でできたっけ?
nn -> ん
は特別処理だっけ?
0526名無しさん@お腹いっぱい。
NGNG0527名無しさん@お腹いっぱい。
NGNG0528名無しさん@お腹いっぱい。
NGNGやってる人がいるという話だから、できるんじゃない?
0529名無しさん@お腹いっぱい。
NGNG>されると「ぱ」に置換されるという具合です
たとえば skk-rom-kana-rule-list に
("ha'" nil ("バ" . "ば"))
("ha\"" nil ("パ" . "ぱ"))
こんなエントリがあると、ha と入力した段階では
"は" にはならず "ha" のまま、続けて ' や " 以外を
入力すれば "は" になり、' とすれば "ば" になるようにはできるな。
"ha" の段階で "は" にしたいって事になると、
ちゃんとしたコードはゴチャゴチャしたものになりそ。
0530名無しさん@お腹いっぱい。
NGNG0531名無しさん@お腹いっぱい。
NGNG切る方法はありますか?
0532名無しさん@お腹いっぱい。
NGNGおてがるには、skk.el の skk-kakutei() から
(cond
((and skk-after-prefix
(not (string-match "^[^\000-\177].+>$" skk-henkan-key)))
............
(substring (car list1) 1)) ; かんどうてき
comb-word (concat (nth 1 list2) (nth 1 list1))) ; 感動的
(skk-update-jisyo comb-word)))))
のブロックを削除したものを .skk に書いておく、かな。
0533名無しさん@お腹いっぱい。
NGNG0534531
NGNG~/.skk に skk-kakutei() をコピーし、教えていただいた部分を
コメントアウトすることで自動的に登録されることが無くなりました。
ありがとうございます。
0535名無しさん@お腹いっぱい。
NGNG(if (skk-numeric-p)
(save-window-excursion
(let ((buff (get-buffer-create "*数値変換フォーマット*")))
(with-current-buffer buff
(erase-buffer)
(insert "#0 無変換 ex. 12\n"
"#1 全角数字 ex. 12\n"
"#2 漢数字で位取りなし ex. 五五〇〇\n"
"#3 漢数字で位取りあり ex. 五千五百\n"
"#4 数値再変換\n"
"#5 金額表記 ex. 壱阡九百九拾伍\n"
"#9 将棋用\n"))
(let ((minibuf-p (skk-in-minibuffer-p))
(window (get-buffer-window
(skk-minibuffer-origin))))
(when minibuf-p
(if window
(select-window window)
(other-window 1)))
(unless (eq (next-window) (selected-window))
(delete-other-windows))
(save-selected-window
(pop-to-buffer buff)
(unless (pos-visible-in-window-p)
(recenter '(1))))
(when minibuf-p
(select-window (minibuffer-window))))
ad-do-it
(kill-buffer buff)))
ad-do-it))
0536名無しさん@お腹いっぱい。
NGNG毎回 Info 見るのが面倒だったので、
skk-henkan-show-candidate-subr を参考に書いてみました。
# あれ、tab使ってないのにインデントが少し変になってる。
# 2chの改行制限きついな……
0537名無しさん@お腹いっぱい。
NGNG連続する(半角)スペースは無視されますよ。
■ このスレッドは過去ログ倉庫に格納されています