2007年9月22日から2007年9月18日までの日記を表示中

2007年 9月22日 (土)

uim.el

1.4.1をクリーンインストールして,何が変わったか確認してみたところ,ここ最近潰したバグの殆どが1.4.1では存在しないバグであったという驚愕の事実が発覚.この機能は1.4.1ではちゃんと動かなかったんだぜ・・・と思ってたものの多くは,実はこれでC-xとかを完全に自前で処理するようになったところで使えなくなってしまったっぽい.ふ,不覚・・・orz.

というわけで,あんなにこねくりまわしたのに,ユーザから見た 1.4.1 からの進化点は多分これだけ・・・(´・ω・`)

  • event-apply-*-modifier 系の処理に対応
    (define-key function-key-map [Scroll_Lock]
                                 'event-apply-control-modifier)
    
    とかすれば Scroll_Lock を使った2ストロークの Ctrlの入力が可能になるので,tkngさんの左手の小指も安心だ!
  • delete-selection-modeに対応
  • とりあえずEmacs-23.xでも起動するようにしてみた
  • XEmacs でも C-x C-h が効くようになった
  • XEmcas で,shifted-motion-keys-select-region (シフト+矢印で領域を選択する機能) が利用可能になった
  • function-key-mapの扱い方が間違っていたのを修正
    (define-key global-map [M-return] `move-beginning-of-line) 
    (define-key global-map [134217741] `move-end-of-line)
    
    とかしたときに,uim.elがONだと M-return でカーソルが行末に行ってしまう問題が無くなったけど,そんなマニアックなことをする人がいるとは思えない.
  • Emacs22で,uim-input-pad-jaで文字を入力した際の,undo後のカーソル位置がおかしくなるバグを修正

ちなみに,上記を抽出している際に,またバグを1個見つけてしまいました_|‾|○.Emacs21で「C-x 8 ~ a」とやるとエラーになります.日本語環境だと「C-x 8 ~ a」と打った時点で次の文字の入力を促す状態になって,たとえば「x」と入れると「笘」とか入力されたりするんですが(こんな機能誰が使うんだろうって感じですが),「(command-execute [24 56 126 97]) とかやると,中で呼ばれるkeyboard.cのread_charなる関数が,キーボードマクロの中で呼び出されてると認識して,キーを読み取らずに -1 を返してしまうためおかしなことににに.

これ,C-xをuimが奪わない 1.4.1 だとちゃんと動くんですよね orz.あとEmacs20ではEmacs22と同じように,普通に「ã」が入力されます.Emacs21が次の1文字を要求するとかするから発生する問題か・・・

対策ですが,今のところ 「(define-key uim-mode-map [24] nil)」 として,再びC-xをuim.elが奪うようにするくらいしか思いつきません・・・.どうしたものか.

uim.elでかな入力云々

しつこく考えてみました.Xmodmapで211(「ろ」)か133(「ー」)のどちらかに,0x5c以外のkeysymを割り当ててもよい,という前提での話です.

  1. Xサーバ上で,「ろ」のkeysymに,Xmodmap で 0x1eを割り当てる
    xmodmap -e "keycode 211 = 0x1e underscore kana_RO"
    
  2. uim.el の uim-process-input 内の
    ((equal send-vector [30])    (setq send-vector [C-~]))
    
    を消して
    ((equal send-vector [92])    (setq send-vector [2213]))
    ((equal send-vector [30])    (setq send-vector [92]))
    
    に置き換えておく
  3. .emacsか何かで,global-mapで [30] (0x1eに対応) に「\」を割り当てておく
    (define-key global-map [30] "\\")
    

一応これで,uim-modeがoffの時は「\」が入り,uim-modeがONになったときは「ろ」と「ー」を使い分けることができます (XEmacsはもうちょっといじらないとダメ).

最大の問題は,これをやってしまうとEmacs以外のアプリケーションで「ろ」のキーが使えなくなってしまうという点.ウィンドウマネージャでフォーカスが入ったときと外れたときに,任意のコマンドを実行してくれるやつがあったりすると,Emacsにフォーカスが入っている間だけ上記のhackが有効になって(゜Д゜)ウマーなんですけど,そんなのあんのかな.

2007年 9月21日 (金)

Terragen

初めて使ってみました.というか初めて知りました.すごい,これは面白い.

uim.el

一瞬勘違いして超焦った.よく考えたらSVNだしなぁ.CVS版は,全然追いかけてないので,動いたらラッキーくらいに思って・・・.

ゴルフSPAM

SPAM候補が置かれるディレクトリ覗いたら件名が何かのコードゴルフみたいなSPAMがありました.ていうかFromにもgolfとか書いてあるし.スゴス.

ゴルフSPAM

2007年 9月20日 (木)

うへへ

まだ三十路じゃないんだぜ.この先,何がどうなってどこへ行くのやら.何とか設計?そんなの作っちゃったら,評価関数ができて,行動の一つ一つに(ry

[コメントを書く]

OBONO 2007/09/21(金) 11:40:33
なんだなんだ?
一体どうしてしまったと言うんだ?
あぼーん 2007/09/21(金) 17:55:25
あぼーん
nosuke 2007/09/21(金) 23:08:57
あほかもう少し空気嫁(;´Д`)
OBONO 2007/09/22(土) 10:29:19
ああ、やっと意味が分かったよ。すまん。
おめでとう。

uim.elでかな入力云々

引き続き検討.「xmodmap -e "keycode 133 = 0x0100005c bar prolongedsound"」とかやればいけるんじゃね!?と一瞬ときめいたんですが,Emacsが見事にsrc/xterm.cで0x01000000のビットを捨ててました(´・ω・`).そもそもそれ以前に XLookupString で 0x0100005c がちゃんと取れてるのか謎ですが.

うーん,Emacs22だけなら

xmodmap -e "keycode 133 = yen bar prolongedsound"

とかやっといて,Emacsの中で

(define-key global-map [2213] "\\")

とかやるといい感じになるんですけどねぇ.ただ,今度は直接入力時に「ー」の方のキーでバックスラッシュにならないでUTF-8の半角¥マークが入ってしまう問題(?)が出るわけで・・・.最初に「¥」と「\」の両方を日本語キーボードに刻印したやつは,何考えてたんだろうな.

いやまてよ,そもそもこの問題はかな入力派以外には関係が無い話なわけであって,そういうユーザは最初から「ー」と「ろ」のキーは別物という認識をしているわけですよね.ということは,ふだんからこの2つのキーを使い分けられるはずで,直接入力時は「ろ」と「ー」のどっちか得意な方で「\」(0x5c)が打てればよいのでは? ・・・なわけはないか.でもどうなんだろうなー.

2007年 9月19日 (水)

ゆとりゲー

ABAさんのこの話見て,おぼのくんとケルナグールだ,カラテカだ,いやイーアルカンフーだとあれこれ話してるうちに,なぜかふと「ゆとりゲーム」という言葉を思いつきました.言葉だけ思いついて,中身が無かったので,こんなのかなーと妄想してみました.多分既にあって,違う意味で使われてることとは思いますが・・・.

  • 一応「上手い」とか「やりこんでいる」という基準や概念が存在する系統のゲームである
    • アクション,シューティング,アドベンチャー,パズル,シミュレーション,RPGなど,いわゆるかつてゲームそのものであると考えられてきたジャンル全般
    • 最近の,ボタンを押してシナリオを読んで,音や映像による演出を楽しむゲームは別
  • 最初から何となく上手いプレーができているような感じを与える作りになっている
    • 単純に難易度が低い
    • 演出が派手で爽快
    • 動きに自動補正がかかって操作を助けてくれる
    • アイテムや経験値,お金などのバランスが崩壊してて,簡単に押し切れる
  • だけど誰がやっても同じようにしか遊べず,また大して差がつかない
    • ゲームの上手い下手(プレイヤー個人の持っている素質(反射神経とか動作の正確性とか動体視力とか)の差が出ない
    • プレー時間の長い短い(経験や学習行為に費やした時間)の差が出ない

ずっと遊んでれば誰でもカンストできて,対戦をすれば大体みんな同じぐらいの勝率になって・・・いや,そもそも勝ち負けとか,点数で順位づけをするという行為自体がなくて・・・だから「ゆとりゲー」

腰を据えて人生の貴重な時間をわざわざ割いてゲームをする人からすると,バランスの悪いクソゲーでしかないですが,きっと,ここ数年で開拓された (と個人的に勝手に思い込んでいる) 暇つぶしにライトにカジュアルにゲームをする人(「ゆとりゲーマー層」)には「何だかちょっとの時間ですごく遊んだ(遊び込んだ)気がする」ため,手頃なゲームとしてヒットしてしまう.

まあ,具体的に何が該当するのか,実はまったくわかんないんですけどね.おぼのくんちにあったビルを爆破するゲームは,もしかしたらそういうのに近いのかもなぁ.

だからどうということは特にないんですが,妄想してみて,自分はやっぱゲームをするときは常に本腰を入れて本気で遊ぶようにはしたいなぁと決意を改めましたが(笑).やるときはやる.やらないときはやらない.暇つぶしにやるんじゃなくて,ゲームをやるために暇を作る,みたいな方向でw

そういえば,ストIIブームの頃,ファミ通でやってた吉田戦車の漫画に,一人格闘ゲームみたいなのが出てたなぁ.俺は右手右足で,お前は左手左足な?みたいな.なんだっけ.「一人ファイター」?

uim.elでかな入力云々

Xmodmapをいじってみた後,過去の一般的な手法を検索して見てみたりしたんですが・・・,な,なるほどね・・・.

とりあえず「xmodmap -e "keycode 133 = yen bar prolongedsound"」とかやって(;´Д`)'`ァ'`ァしてみたり.

2007年 9月18日 (火)

uim.el

NEWSに書く内容確認してたら,delete-selection-modeの動作がちょっと変なことを発見.領域選んでBSを押すと,選んでたところがごっそり消えるのはいいんですが,さらにその後,カーソルの左の文字が1個消えます.まあ,多分,pre-command-hook で消した後,元のコマンドが機能しないようにdelsel.el で細工しているのをuim.elが無視しちゃってるんだろうなーと思ってソース見たらやっぱりそうでした.というわけで,this-command をちゃんと見るようにして対処.

あと,「ろ」と「ー」の問題,svnのuimでGTKとuim.elの両方で入力してみて,一応確認したつもりです.ユーザから見ると,かな入力のときに,BSの隣にあるキーが押されたら「ー」が入って,「ろ」って書いてあるやつが押されたら「ろ」が入るようになってほしいということなんですよね? あ, read-key-sequence-vector ではどっちも92か・・・.これ,Emacsに手を入れずに華麗に対処できるのかな・・・.いやそもそも全然違う問題なのか?これっすよね?

[コメントを書く]

ヤマケン 2007/09/19(水) 03:16:32
> かな入力のときに,BSの隣にあるキーが押されたら「ー」が入って,「ろ」って書いてあるやつが押されたら「ろ」が入るようになってほしい
その通りっす。X上のEmacsなら何か区別する手段があるかなと思ったんですが、構造上無理なようならそのままで構いません。日本語キーボードまで調達しての対応ありがとうございます。
nosuke 2007/09/20(木) 00:53:08
あれこれ調べてみたんですが,やはりEmacsではXでいうキーのkeysymしか取れないっぽい感じです.uimのやり方だと,Xでいうkeycodeが必要なんですよね?だとすると,やっぱ厳しいかも.
src/xterm.c あたりをもう少し読んで検討してみますが,あんま期待しない方向でお願いします.

2007年9月22日から2007年9月18日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2007年9月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ