マッチするタブに切り替えたときに,自動的にvimperatorのkeyをオフにする
マッチするページの場合、自動的にvimperatorのkeyをオフにする autoIgnoreKey プラグイン - hogehogeというのがあったので,全面的にパクらせていただいて作ってみた.と,思ったら自分がつけたブクマコメントに反応して頂いて元のページの人がもう対応してたorzありがとうございます!
一応動くものができたので公開してみる.ignorePageListにマッチするURLのタブに切り替わるたびに自動的にVimperatorがオフになります.Firefox独自の部分(XULでいいのかな?)が関わってくるJavaScriptをほとんど書いたことがないので,なんか違うかも知れませんがとりあえず動いたの貼っておきます.
(function(){ /** * String or RegExp * e.g) * /^https?:\/\/mail\.google\.com\// * 'http://reader.livedoor.com/reader/' */ var ignorePageList = [ /^https?:\/\/mail\.google\.com\//, 'http://reader.livedoor.com/reader/', /^http:\/\/www\.nicovideo\.jp\//, ]; document.getElementById('appcontent').addEventListener('TabSelect', function(event) { var d = gBrowser.selectedBrowser.contentDocument; if(isMatch(d.URL)) { vimperator.addMode(null, vimperator.modes.ESCAPE_ALL_KEYS); vimperator.log('Map ignored: ' + d.URL); } }, false); function isMatch(uri) { return ignorePageList.some(function(e,i,a) { if (typeof e == 'string'){ return uri.indexOf(e) != -1; } else if (e instanceof RegExp) { return e.test(uri); } }); } })();
2008/01/21 23:07 | Firefox | トラックバック(0) | コメント(0)
VimperatorでStartCommandの補完を使う
vimperatorでGoogleSuggestから単語を補完して検索 - Dis Communication - 符号無しっていうのがあったので,StartCommandでもやってみた.
VimperatorはVimみたいにプラグインを置くことができて,Mac,Linuxなら~/.vimperator/plugin/以下,Windowsなら~\vimperator\plugin以下に.jsファイルを置くと自動的に読み込まれるようになっている.先ほどのページのJavaScriptを置いて:restartするとGoogle Suggestによる検索ができるようになる.StartCommandに対応させるには,StartCommandの自分の検索プラグインをインストールしておくと,FirefoxのProfilesフォルダにあるsearchpluginsの中に(ユーザ名).xmlという名前でファイルができるのでその中身を参考にする.基本的にはendPointを書き換えて,適当にusageやコマンドを好きなように書くだけ.あと,リンク先にあるように0.5系列と0.6系列で微妙に書き方が違うようなので注意.一応以下に貼っておきます.
vimperator.commands.add(new vimperator.Command(['stand'], function(arg) { var endPoint = "http://www.startcommand.com/stand/tsukkee?cmd="; vimperator.open(endPoint + encodeURI(arg)); }, { usage: ['stand queryWord'], shortHelp: 'Search web sites with StartCommand', completer: function(filter) { var endPoint = "http://www.startcommand.com/js/suggest/33?u="; var xhr = new XMLHttpRequest(); var comleteList = []; xhr.open("GET", endPoint + encodeURI(filter), false); xhr.send(null); var response = window.eval(xhr.responseText)[1]; for(var i in response) { comleteList.push([response[i], "Suggests"]); } // return [0, comleteList]; // 0.6系列 return comleteList; // 0.5系列 } } ));
このままだとtsukkeeのスタンドが使われるので使いたい方は適宜自分のものに書き換えてください.ついでなので.vimperatorrcも貼っておきます(前も貼ったっけ?).
" options set activate=quickmark,paste set complete=bshf set guioptions=mTb set hlsearch set ignorecase set incsearch set popups=2 set preload set showstatuslinks=2 set wildmode=list:full " key mappings " Windows環境のCtrl+cでコピーを殺すのを回避 map <C-c> Y " 多めにスクロールするようにする noremap j 5j noremap k 5k noremap h 3h noremap l 3l " 確認 echo '.vimperatorrc loaded'
2008/01/16 11:54 | Firefox | トラックバック(0) | コメント(0)
MacVimが結構良い感じ
VimについてはVimのインストールふれた通り,MacではPrivatePortfile/Vim - MacPortsWiki-JPにあるPvivatePortfileを使って
sudo port install vim +cocoa +cscope +huge +kaoriya +multibyte +python +ruby
でインストールして使っているのだが,最近はGUIをCocoaで書き直してさらにMacで使いやすくするための機能を追加したMacVimというのがある.MacVimも通常のVimと同じ方がPrivatePortfile/MacVim - MacPortsWiki-JPにてPrivatePortfileを公開してくださっており,
sudo port install macvim +cscope +kaoriya +python +ruby
という感じでインストールできる.以前にインストールしたときはちょっとバギーな感じだったのでスルーしてたのだが,:help macvimをよく読んで設定し直してみたら結構いい感じになったのでメモしておく.
.vimrcはいつも使っているので問題なかったのだが,.gvimrcに修正が必要だった.MacVimはhas('gui_macvim')で判別できるので以下のように追加してみた.
if has('gui_macvim') set showtabline=2 // タブを常に表示 set imdisable // IMを無効化 set transparency=5 // 透明度を指定 map <silent> gw :macaction selectNextWindow:map <silent> gW :macaction selectPreviousWindow: endif
MacVimはタブがSafariっぽくなっててきれいなので常に表示するようにした.imdisableを指定しないとなぜかInsertモード中に勝手にIMがOnになってしまう.あと,通常のGVimのtransparencyは0(透明)?255(不透明)なのだが,MacVimは0(不透明)?100(透明)なので別に指定しなければならない.以前は,このimdisableとtransparencyの設定に気付かずにバギーの感じていたのだが,ここをちゃんと設定すれば一応常用できると思う.
さらに,macactionコマンドで独自のコマンドを追加することができる.詳しくは:help macvimを見てもらうにしても,上記のように設定するとgwとgWで複数開いたMacVimのウィンドウに対して順番にフォーカスを移していくことができる.また,UserDefaults - macvim - Google Codeにあるように,GUIのタブ自体の設定はdefaultsコマンドで指定できる.例えば,
defaults write org.vim.MacVim MMTerminateAfterLastWindowClosed yes
で,最後のウィンドウを閉じたときに自動的にMacVimを終了できて,
defaults write org.vim.MacVim MMOpenFilesInTabs yes
で,MacVimにファイルをドロップしたときにタブで開くようにできる.このタブで開くのは前々からやりたかったことなので大変素晴らしい感じ.
まだ残っている不具合の中では,日本語入力の未確定の部分が2バイト文字表示に対応していないことと,フォントの設定がちゃんとできないあたりがまだ痛いといえば痛いけど,まだまだ開発の途中のようなので今後の期待している.フォントはデフォルトので問題ないし,Vimはそもそもプログラムを書くのには適しているものの日本語の長文を書くのには適していないと思うのでとりあえずプログラム書くのに常用してみようと思う.
2008/01/15 00:36 | Vim | トラックバック(0) | コメント(0)
MacでSylpheedをビルドしてみた
Sylpheedっていうメーラが良さそうだけど,Macのバイナリがないっぽいのでビルドしてみた.MacPortsにも一応あるけど,バージョンが古いのでSubversionリポジトリから一番新しいのを取ってきてビルドすることにする.環境はMac OS X Leopard (Intel)でやってる.
Sylpheedが依存するライブラリは全部MacPortsで入れることにする.まず,以下のportをインストールする.
- gtk2
- automake
- libtool
- gpgme
たぶんこの4つと依存関係で入ってくるのでいけると思うけど,自分のMacPortsには既にいろいろ入ってたのでどれが必要十分なのかわからなかったorz.次に,bashなら.bashrc,zshなら.zshrcなどに
export C_INCLUDE_PATH=/opt/local/include
と書くなどして環境変数C_INCLUDE_PATHに/opt/local/includeを含めておく.ちなみに,MacPortsでboostを入れたときなんかも,環境変数CPLUS_INCLUDE_PATHに/opt/local/includeを含めておかないと認識してくれないようだ.そして,先ほどのページにあるようにチェックアウトしてきたディレクトリで,
./autogen.sh
すると,libtoolizeがないと怒られるので,autogen.shの4行目のlibtoolizeをglibtoolizeに書き直してからやり直すとうまくいった.そのあと,
make sudo make install
すると,無事/usr/local/bin以下にインストールされた.
残念ながら今のところX11経由でないと動かないので,X11.appを立ち上げた後,ターミナルから
sylpheed &
などとしないと動かない.X11ではことえりも使えないのでBeginning OS X 10.5 - Beginning OS Xあたりを参考にkinput2を入れるなどして対応しなければならない.JavaFlavor Weblog: Inside Leopard: X11.appと日本語環境の問題にもあるように,キーボードも英語配列で認識されてしまうので,対策が必要.
X11なので常用するのは厳しそうだけど,Sylpheed Diary(2007-09-27)にあるように3列表示も実装されており,GmailのIMAPで使ってみた感じでは動作も重くはないと思う.機能的には,検索フォルダが複数フォルダからの検索に対応してないのが痛い.また,キーボードによる操作性を重視しているとあるけど,Thunderbird + functions for keyconfig + Nostalgyでだいたい同じような感じになるので,もう一つSylpheedでなければ!っていうところが欲しい気がする.
個人的には,livedoor Readerのピンみたいにメールに一時的な印を付けて,それに対してラベル付けしたり移動したり,といった操作,言い換えると,Command(WindowsではCtrl) + マウスクリックでできるようなとびとびでの複数選択をキーボードだけでやりたい,っていう感じ.もしかしたら,すでにできる方法があるのかも知れないけど(-.-;)何か便利な方法があれば教えてほしいです.
2008/1/6 19:20:00頃追記:livedoor Readerのピンというより,Gmailやな.要するにGmailみたいにxでチェック付けて行ってyでアーカイブみたいなのをThunderbirdとかでもやりたい.
2008/01/05 11:08 | Mac | トラックバック(0) | コメント(0)
HHK Lite2を買ったのでWindowsのキーボード設定を見直してみた
新年初エントリ.あけましておめでとうございます!
昨年末に研究室のWindows機で使ってるキーボードがあまりにも使いにくい&お財布に余裕があったので,Happy Hacking Keyboard Lite2 (日本語配列 かな無刻印モデル)を買ってみた.人によって好みは分かれるかも知れないけど,個人的にはしっかりした打ち心地で,安定してタイピングできるので大変気に入っている.矢印キーが変に浅くて打ちにくいのが難点と言えば難点かも知れない.
で,基本的にMac使いなのでこれまでも窓使いの憂鬱を使って適当にMacぽくキーバインドとかをカスタマイズしてたけど,HHK Lite2がこれまで使っていたキーボードとレイアウトが違う&窓使いの憂鬱がVistaで使えないので,そのうちVistaに移行することも見越して,Vistaでも有効と思われる解決策を考えることにした.そして,いろいろと試行錯誤の末,XKeymacsを使いつつ,ATOKのキーバインド設定を変更することで,とりあえず納得できる環境になった.
XKeymacsはヘビーなEmacs使いではないため,Ctrl-p(↑),Ctrl-n(↓),Ctrl-f(→),Ctrl-b(←),Ctrl-h(Backspace),Ctrl-q(XKeymacsの有効/無効切り替え)あたりだけを残して後は全部無効にしてある.しかし,Ctrl-hはMacのほとんどのアプリケーションで有効なせいで体に染み付きすぎて,ないとイライラするので必須.また,Ctrl-qで簡単に有効/無効を切り替えれるのが良いと思った.あと,HHK Lite2ではFnキーと同時押しすることによってキーボードの側面に印字してあるキーを入力できる(HHK Lite2の写真参照)のだけど,WinキーがFn + 全角/半角キー(最下段左から3つ目) or Kanaキーなのが不便なので,XKeymacsのキーボードリマップ機能(というかレジストリの設定変えてくれる機能)を使って,全角/半角およびKanaキーを殺してWinキーにしている.
ATOKの設定はMacのことえりっぽくするために,変換キーでIME On,無変換キーでIME Off,Ctrl-jでひらがな変換,Ctrl-kでカタカナ変換,Ctrl-;で英数変換という風に設定している.IMEのOn,Offに全角/半角キーをトグルするのはなんかおかしくて,Macの日本語キーボードのようにOnとOffでキーを分けるべきだと思う.なぜならばトグルだと,
- IMEをOnまたはOffにしたい
- 今のIMEの状態を確かめる
- トグルキーを押すかどうか判断する
- 必要ならトグルキーを押す
または,
- とりあえず打ち始める
- 思ってたのとIMEの状態が違った
- 一回入力した文字消す
- トグルキー押す
などと,認知的な負担がかかったり,無駄な入力が発生する.英数入力のつもりがIMEがOnだった場合はF10とかで英数変換する人もいるようだが,そんなことせずともOnとOffでキーを分けておけば,OnにしたいときはOnキーを押せば確実にOnになるし,Offにしたいときも同様なので,無駄なことを考えずに済む.それに,全角/半角キーはホームポジションから遠すぎる.というわけで,全角/半角キーでIMEのOn/Offをトグルするのは百害あって一利なし,どうせデフォルト設定では使わず,親指ですぐに押せる変換,無変換キーをIMEのOn,Offに割り当てるのが合理的だと思う.Windows→Mac→Windowsと渡り歩いて、かな漢字変換でとても役に立った習慣 - k12uのアレのように同じこと考えている人もいらっしゃるようだ.
WindowsではF7でカタカナ変換がデフォルトのようだけど,ホームポジションから遥か遠いファンクションキーを使う気にはなれない.Ctrl-hでBackspaceも同様.MacのExposeやDashboardみたいにキーボード操作と同時に行う可能性が低く,どっちかと言えばマウス操作と同時に行う操作はファンクションキーが適していると思うけど,カタカナ変換みたいにキーボードばりばりの操作でファンクションキー使うのはなんか違う気がする.とは言っても,この辺はわかばマークのMacの備忘録 : ことえり/変換中のショートカットのエントリにもあるように好みが分かれるようだ.
2008/01/03 02:44 | Windows | トラックバック(0) | コメント(0)