Vimperator導入

参考1:http://vimperator.org/trac/wiki/Vimperator
参考2:http://d.hatena.ne.jp/teramako/
参考3:http://d.hatena.ne.jp/lillilife/20080723/1216725385
参考4:http://d.hatena.ne.jp/k0y/20070919/1190257028
参考5:http://doya.in/wiki/vimperator/


参考1からvimperator 1.2をダウンロード&インストール
現在の最新バージョン
参考サイトを見ながら$HOMEに.vimperatorrcを作成

" ブラウザタイトルの変更
" Firefox デフォルトは 「Mozilla - Firefox」、vimperatorを入れると「vimperator」
set titlestring=Mozilla - Firefox

" 詳細表示レベル? 内容確認中、左下のステータス状況か?
" →「:javascript! 」で表示される内容レベル
set verbose=9

" beepのかわりに、visualbellをつかう。
set visualbell
set visualbellstyle=display:none;

" 不明 内容確認中
set wildmode=list:full

":[tab]open時の補完設定(s=検索エンジン+キーワードURL,l=ロケーションバーの補完機能を利用)
set complete=l

"コマンド入力時にコマンド名を自動補完
set wildoptions=auto

"デフォルト検索エンジン(検索バーの管理→キーワード,うちではg=google)
set defsearch=g

"履歴を保存
set history=1000

"以下のとき新しいタブで開く
set activate=homepage,quickmark,tabopen,paste

" メニューバー、ツールバーなどを表示
set guioptions=mT

" ステータスバーを非表示
set laststatus=0

" 自動フォーカスを外す
:set focuscontent

" アクセスキーを使わない
set! ui.key.generalAccessKey=0

" j/k でのスクロール幅を 1行 から 3行 に変更
noremap j 5<C-e>
noremap k 5<C-y>

" h/l に戻るや進むを割り当て
noremap h <A-Left>
noremap l <A-Right>

" C-,/C-.でタブ位置変更
"noremap <C-.> :tabmove! +1<CR>
"noremap <C-,> :tabmove! -1<CR>

" CSS解除
"noremap ! :set invum<CR>

"ちかちか対策
javascript <<EOM
[
    ['!',':set invum'],
    ['>',':tabmove! +1'],
    ['<',':tabmove! -1']
].forEach(function([key,command]){
    liberator.mappings.addUserMap([liberator.modes.NORMAL], [key],
        "User defined mapping",
        function () { liberator.execute(command); },
        {
            rhs: key,
            noremap: true
        });
});
EOM

"コピー&ペーストなどOSのショートカットが効くように
inoremap <C-a> <C-v><C-a>
inoremap <C-z> <C-v><C-z>
inoremap <C-x> <C-v><C-x>
inoremap <C-c> <C-v><C-c>
inoremap <C-v> <C-v><C-v>
noremap <C-a> <C-v><C-a>
noremap <C-z> <C-v><C-z>
noremap <C-x> <C-v><C-x>
noremap <C-c> <C-v><C-c>
noremap <C-v> <C-v><C-v>

"ロケーションバーにフォーカス
noremap <C-l> <A-d>

"検索窓にフォーカス
noremap <C-e> <A-d><TAB>

"ブックマークサイドバーを開く
noremap <C-b> :<C-b><ESC>

"履歴サイドバーを開く
noremap <C-h> :<C-h><ESC>

"ソースを開く
noremap <C-u> <C-z><C-u><C-v>

" ime_controller.js
let g:ex_ime_mode = "inactive"
let g:textarea_ime_mode = "inactive"


Ctrl+eで検索窓にフォーカスするよう,最初

noremap <C-e> <C-z><C-e><ESC>

としていたが,仕様のためかフォーカスがすぐ外れるので苦肉の策で上のように設定

はvimperatorコマンドの無効化
Vimperator 0.6ではだったが,バージョンアップでキーバインドが変更
はvimperator 1.2ではFirefox終了


バックスペースの無効化
参考:http://www.mydigitallife.info/2008/06/22/disable-or-enable-backspace-as-go-back-page-browsing-function-in-firefox/ja/
hを戻るに設定したためBackspaceの戻る機能がいらなくなった


プラグイン導入
char-hints-mod.js
参考:http://d.hatena.ne.jp/ampmmn/20080925/1222353895
hintの表示を変更できる
表示に使用する文字を"asdghjklrtyu"に,ヒントのスタイルを適当に,
fでhintを閉じる仕様に変更
~/.vimperator/plugin/に保存&Firefox再起動


walk-input.js
Alt+iで複数のフォーム間を移動できる
デフォルトでは,giでフォームに移動
しかし,複数あると別のところにはいけない


ime_controller.js
フォームやコマンドラインでのIMEをコントロールしてくれる
設定は,.vimperatorrcに記述
設定出来るのは,auto,active,inactive,disabled
ただし,active,inactiveはWindowsでしか設定できない


コマンドラインの色変更
参考:http://doya.in/20080625/vimperator-color/
~/.mozilla/firefox/[プロファイル名].default/chrome/にuserChrome.cssを作成

/* bufferwindow style */
#liberator-container{
    color: blue !important;
}
#liberator-bufferwindow, #liberator-completion, #liberator-previewwindow {
    color: blue !important;
    background-color: #eee !important;
}
/* commandline style */
#liberator-commandline{
    background-color: #222 !important;
    color: #fff !important;
    font-weight: normal !important;
    font-size: 10pt !important;
}

やはり,vimは黒に限る


"ちかちか対策
参考:http://unsigned.g.hatena.ne.jp/Trapezoid/20080620/1213961754
set wildoptions=autoを設定した場合,mapで:tabmove! +1など設定してるとキーを押したときに一瞬補完されて,画面がちらつくのでその対策