家で使っている Thinkpad Helix のキーボードがぶっ壊れまして。といっても、N キーが取れた、ってだけのことではあったんです。キーが取れちゃうってのは、たまにはあることなので、とりあえずくっつけようとしたんですが、どうにもうまく付いてれません。
よくよく見てみると、パンタグラフになってるパーツが一部折れてることがわかりました。そして、基盤側の爪もちょっと曲がってます。こうなるとどうしようもないので、キーボード交換かと思ってましたが、以前の Thinpad シリーズと違ってキーボードだけさくっと交換、というわけにもいかないようです ( キーボード兼ドックなので )。
Lenovo から直接パーツを買うこともできそうですが、とりあえず、eBay で見てみると、キーボードドックは $300 近い値段がします。こりゃまいった ( どうやらパーツを直接購入すると $450 くらいするらしいんで、それよりは安いんですけど )。
さすがに $300 も出すのは厳しいので、$24 で売ってるキーボード部分のパーツを買って、うまいこと移植できないかどうか、試してみることに。で。今日届いたので、さっそく試してみたところ、無事くっついてくれました。よかった...。これで Helix が置物にならなくてすみました...。
Emacs には ffap という機能がありまして。『ファイルを開く』のと同じキーバインド ( C-x C-f ) で、カーソルの下にある文字列から、ファイルや URL を検出して、うまいこと Emacs で開いたり、Web ブラウザで開いてくれたり、というやつです。
で、これが微妙なことに、括弧 "(" で URL が途切れる、と判定してしまうのです。ま、それでも、URL 全体を選択してから C-x C-f すればいいんですが、どうも、24.3 にしてから選択状態の C-x C-f が期待どおりに動作してくれません ( カレントディレクトリを開こうとしちゃう )。
どうしようかと考えてたんですが、そもそもの URL の検出ロジックを見直せばいいじゃん、と。とりあえず、こんな感じのリストを再定義 ( defvar されてるんで、そっちを変えるのもアレだし ) して、想定どおりの動作になりました。
(setq ffap-string-at-point-mode-alist '((file "--:\\\\$+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:") ;; (url "--:=&?$+@-Z_[:alpha:]~#,%;*" "^[:alnum:]" ":;.,!?") (url "--:=&?$+@-Z_[:alpha:]~#,%;*()!'" "^[0-9a-zA-Z]" ":;.,!?") (nocolon "--9$+<>@-Z_[:alpha:]~" "<@" "@>;.,!?") (machine "-[:alnum:]." "" ".") (math-mode ",-:$+<>@-Z_[:lower:]~`" "<" "@>;.,!?`:")))
これ、MSDN とか Technet ではよくある URL 『(vs.80) とか (ws.10) とか』なので、その辺の URL を開くことが多いわたしには、便利な動作になってくれそうです。