トップ «前の日記(2007-02-21) 最新 次の日記(2007-02-23)» 編集

じじぃの日記、ツッコミ可

Twitter: @jijixi_org
Xbox Live: jijixi

初心者が書いた OCaml 入門
Spotlight tips サイト内リンク集
1970|01|02|
2003|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|11|
2011|05|
2012|01|

2007-02-22 [長年日記]

% [Mac] AquaSKK のキーバインディングを変更する方法

Ctrl+J で改行するクセが付いちゃってるわしとしては、skk デフォルトの Ctrl+J でひらがなモードってのが激しくウザいのである。 そんなわけで、AquaSKK のデフォルトキーバインディングも激しくウザいので、結構前から設定を変更して使っている。 でも、この設定の仕方を探すのに結構苦労したんで (もはやどこで見つけたのか憶えてないし)、同様に不満を持っている誰かのために、ここに書き記してみる次第。

…と、ここまで書いて、なんかこのネタすでに書いたような気もしたんで検索してみたけど、とりあえず見当たらないんで、まあ書いとこう。 もし、かぶってたら、それはわしの脳が劣化しているせいである。

ともあれ、やり方自体は簡単。 ソースの Resources/config というファイルを参考に ~/Library/AquaSKK/config を編集するだけ。 あとは次回ログイン時から有効になる (ただし画面上の表示は変わらないので我慢)。

まあ、それだけ。 ……それだけなんだけど、これが何だか微妙に変で。 例えば、わしがやりたいのは Ctrl+O でひらがなモードだったりするんだけど、その場合いじるべきなのは、kana-mode-key じゃなく kakutei-key だったりする。 んで、変換を確定するキーの設定が kana-mode-key 。 どう考えても設定が逆になってる。 しかも、確定キーは Ctrl+J にしたいんだけど、kana-mode-key を "\C-j" に設定すると強制的に kakutei-key の方の設定も Ctrl+J に上書きされてしまう。 要するに、『確定が Ctrl+J でひらがなモードは他のキー』っていう設定ができない。 結局現在は、Ctrl+M で確定、Ctrl+O でひらがなモード、っていう設定で我慢してる。 ちなみに、しばらく前まではひらがなモードは Ctrl+K にしてたんだが、Emacs を使うときにこのキーが取られると不便なので変えたのであった。(まだちょっと慣れてない)

そういや、この辺の設定がおかしい件については、ソース読もうと思いつつ放置してるなあ。

(追記) 気になって試してみたら、記憶違いしてたみたいだ。 確定を Ctrl+J に設定しても、ひらがなモードを他のキーにできるんだけど、Ctrl+J で確定しようとすると確定されずに変換中の文字列が消えちゃうという謎の挙動をする。 だから、実質使い物にならないので、結果的に『確定が Ctrl+J でひらがなモードは他のキー』という設定はできないってことになる。

% [vim] ついでだから skk.vim の設定も

まあ、これは skk.vim のファイルを眺めればわかることなんだけど、.vimrc に

let g:skk_control_j_key = "<C-o>"

と書いとけば、Ctrl+O で skk モードの ON/OFF ができるようになる。 でも skk モードのまま l で英数モードにした場合に、かなモードにするキーはなぜか Ctrl+J のまま。 なんかこれも微妙にバグっぽいんだよな。 かなモードキーをカスタマイズする変数は設定されてないし、skk_control_j_key の説明には『<C-j> の働きをするキー。』と書かれてて、これを素直に解釈すれば元々 Ctrl+J に設定されてる機能は全部変更されないと変な気がする。

どうにも AquaSKK と skk.vim で操作法に一貫性が無いんで、ほんとは vim でも AquaSKK を使えばすっきりするんだけど、Terminal.app は Ctrl 修飾のキーイベントを IM に回してくれないみたいで、Terminal.app 上で AquaSKK を使うときは Command+Space で IM を切り替えなきゃいけない。結局一貫性が無いんだよな。 MacPorts の vim +aqua でできる Gvim.app はインライン入力が効かないから論外だし。

いつか何とかしよう…と思い続けて、結局めんどくさくて『直すより慣れろ』な状況になってるダメさ満点なわし...orz

% [あなごる][Erlang] うーむ、ultimate problem でタイムアウトはさすがに問題があるような…

いくらなんでも、↓こんなコードがタイムアウトするのは、どこかおかしい気がします(苦笑

-module(u).
-export([m/0]).
m()->io:write(42).

shinh さんが何とかしてくれるのを期待しつつ、Erlang は、しばし封印。 ちょっぴり Ruby に手を出そうかと思ってみたんだけど、ためしにちょっと書いてみたやつが、あまりにもお話にならないレベルだったんであきらめましたよ、ええ。 ただでさえゴルフの才能無いのに、こんなゴルファー御用達みたいな言語は使いこなせません(笑

% [あなごる][雑談] Erlang のコードを直接実行するシェルスクリプトを書こうと思った

…のが一昨日の話。とりあえず vim erlrun とかやって、

#!/bin/sh

と書くまでは 5 秒で終わったんだけど、その後が一向に続かない。 単純なものなんで、仕様というか、何をどうすべきかはすでに頭の中できあがっていて、あとは淡々とコーディングしていくだけなんだが、全然コードが浮かんでこないわけ。 結局 5 分くらいかけて、

if [

まで書いた(苦笑)ところであきらめて、一行目を…

#!/opt/local/bin/ruby

に書き変えたら 3 分でできあがった。 まあ、テストとデバッグで、さらに 3 分くらいかかったけど (ARGV の構造とか細かいとこは忘れてるんで)。

なんだか、ちょっと火をつけるだけなのにマッチの使い方がわからなくて、しかたなくガスバーナーを探しに行っちゃうようなダメっぽさを感じてしまって、苦笑い。

tcsh 使ってた頃は、ちょっとしたことは csh スクリプトで書いてたりしたんだけど、zsh に乗り換えたのを契機に sh スクリプトで書くように改めて (つーか sh を憶えないと設定ファイルが書けないからさ)、そうこうするうちに csh の方はすっかり忘れてしまって、かと言って sh の方もかなり知識があやしい状態のまま今に至るという感じ。 読めることは読めるけど、いざ書こうと思うと全然出てこない。

そして Ruby に逃げる。 なんかダメっぽい。 ダメっぽいけど、Mac OS X なんかだと Ruby は標準添付なわけで、sh 使うのと変わんねーじゃん…という気もしなくはない。 なんかクールじゃないけど。

% [vim] skk.vim の設定続き

良い機会なんで、AquaSKK と skk.vim の挙動が近くなるようにがんばってみようと思った。 んで、AquaSKK のソース読むよりは skk.vim を読んだ方が楽そうなんで、まずは読む。 とりあえず現状の設定だと、AquaSKK の場合 l で英数モードになった場合に次にひらがなモードにするには Ctrl+O なわけだけど、skk.vim だと Ctrl+J になっちゃうのが混乱の元。 なので、その Ctrl+J の役割を Ctrl+O に割り当てるか、skk 自体の ON/OFF は Ctrl+O に設定できてるので l で skk を OFF にできれば目的は達成できる。

そんな感じで調べた結果、Ctrl+J がハードコーディングされてる部分を見付けて、そこを Ctrl+O に直してみたんだけど、なぜか英数モードの時に Ctrl+O 押しても skk の ON/OFF 機能の方が優先されてしまって一旦英数モードになると、ひらがなモードに戻れなくなるので却下。 最終的に l の機能を上書きする方法を見付けて、それを使って対処することで幸せになれた。 ↓こんな感じ。

let g:skk_user_rom_func_rules = ""
         \. "l  SkkMode(0)\<NL>"

書式は skk_rom_func_rules を定義している箇所を参照。 SkkMode というのは skk の ON/OFF をする関数で、non-zero を与えれば ON。 これと、さっき書いた

let g:skk_control_j_key = "<C-o>"

とを併せて、AquaSKK に近い挙動になる。

ちなみに skk_user_rom_kana_rules という変数を使えば、ローマ字かな変換のルールを追加できる。 わしは↓こんなの書いてる。(わかりづらいけど、z→スペース、で全角スペース。他の z 系のルールは大体すでに設定されてるので、必要無い)

let g:skk_user_rom_kana_rules = ""
         \. "z   \<NL>"

あと、↓こうしとくと、insert モードでの skk の ON/OFF 状態を記憶してくれるようになるので、gvim の iminsert=2 のような挙動になる。 好みにもよるけど、便利なときは便利。

let g:skk_keep_state = 1

他には↓これで、何回変換キーを押したら候補一覧が出るかの制御。

let g:skk_show_candidates_count = 3

他にもいろいろ設定項目はあるけど、わしが設定してるのはこの程度かな。 あ、もちろん辞書の設定とかはしてるけど、そこら辺は基本だからここには書かない。

お名前:
E-mail:
コメント:

トップ «前の日記(2007-02-21) 最新 次の日記(2007-02-23)» 編集

日記ってのは本来、自分で読み返すためにあるもんだよなあ……
もしくは有名人になったら死後に本になったりとかか?

RSS はこちら

jijixi at azito.com