vimperator事始

なんとなく使い始めてみたけど、こりゃすげぇわ(Ver2.0)。

基本

  • vimと同じようにコマンドモード、入力モード(フォーム等で入力状態)がある
  • コマンド入力途中にTabで補完候補一覧表示

初期設定

表示設定

メニューバー、ツールバー、ブックマークバーが表示されないのは怖いので変更(Macではgo-=mやってももちろん消えない)

:se go+=mTB
[:set guioptions+=mTB]
(後で:set go-=mTB)
補完候補一覧表示を自動で

Tabを押さなくても自動で表示

:se wop=auto
[:set wildoptions=auto]
補完候補対象にブックマークを追加
:se complete+=b
現設定表示(変更したオプションは太字表示)
:se all
設定保存(!は上書き時)

.vimperatorrcを直接変更した後mkv!すると変更内容が消える?

:mkv(!)
[:mkvimperatorrc(!)]

ヘルプ

:se を調べたい場合
:h :se
Ctrl-p等を調べたい場合
:h C-p

基本操作-移動

下へスクロール
j
上へスクロール
k
半ページ下へスクロール
Ctrl-d
半ページ上へスクロール
Ctrl-u
ページ最上段へ移動
gg
ページ最下段へ移動
G
戻る
H
進む
L
ページの更新
r

基本操作-タブ

同じタブで開く(URL,検索ワード等)
o 〜
新しいタブで開く(URL,検索ワード等)
t 〜
新規タブを開く
t
タブを閉じる
d
閉じたタブを復元
u
右のタブに移動(countを指定すると、その数分移動)
(count)Ctrl-n
左のタブに移動(countを指定すると、その数分移動)
(count)Ctrl-p
X番目のタブに移動(X省略で右のタブに移動)
(X)gt

基本操作-その他

セッション履歴保持で終了
ZZ
Vimperatorの機能を無効化(LDRのショートカットキーを使いたい場合等)
Ctrl-z(Escで復帰)
Vimperatorの機能を1回だけ無効化
Ctrl-v
今開いてるページのアドレスをコピー(ヤンク)
y
コピーしたアドレスを開く
p
検索

検索完了後(Enter押下後)、nで順方向、Nで逆方向の検索結果にジャンプ

/ 〜

ページ内リンク

これが感動もの

リンクに数字を表示(クイックヒントモード)

表示された数字をタイプするとクリックしたことになる(Fだとタブで開き、移動はしない)

f or F
違うタブに表示して移動したい場合は(;=拡張ヒントモード)
;t3

拡張ヒントモードのモード(↑のtの部分)は他にもある(sで指定先を保存等)

設定等

アドオン画面の表示
:addo
Firefoxオプションダイアログの表示
:pref

コピペ

Windowsでコピペ等のショートカットを使いたい場合はCtrl-vで次の1回だけエスケープするようにしてから入力(解決:vimperator事始 -補完- - souta-bot log)

プラグイン

インストール

~/.vimperator/plugin(Windowsは~/vimperator/plugin)に置く

とりあえず以下を入れてみた

char-hints-mod2.js

ヒントを数字から英字にしてホームポジションから離れなくておk

migemo_hint.js

クイックヒントを漢字を含むローマ字入力で絞込み(事前にXUL/Migemoアドオンインストール)
.vimperatorrcに以下を記述

set hintmatching=custom

LDR等のサイトで自動でvimperatorを無効化

autoIgnoreKey.jsを入れてみたけど効かない。
http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/autoIgnoreKey.js
を見ると最後のチェックインが8ヶ月前なのでもう古いのかも
http://wiki.livedoor.jp/shin_yan/d/autoIgnoreKey%2ejs
を見て.vimperatorrcに以下を設定

autocmd LocationChange mail\.google\.com :js liberator.modes.passAllKeys=true
autocmd LocationChange reader\.livedoor\.com\/reader :js liberator.modes.passAllKeys=true

だがLDRを開くと以下のエラーが表示される

chrome://liberator/content/eval/js:1: TypeError: liberator.modes is undefined

http://wiki.livedoor.jp/shin_yan/d/liberator%282%2e0%29%2emodules%2emodes
をみて以下の様に変更

autocmd LocationChange mail\.google\.com :js liberator.modules.modes.passAllKeys=true
autocmd LocationChange reader\.livedoor\.com\/reader :js liberator.modules.modes.passAllKeys=true

LDRを開くと-- PASS THROUGH --と出て成功!
でも他のページに移動しても無効のままだー
上から順に評価だろうから

autocmd LocationChange .* :js liberator.modules.modes.passAllKeys=false
autocmd LocationChange mail\.google\.com :js liberator.modules.modes.passAllKeys=true
autocmd LocationChange reader\.livedoor\.com\/reader :js liberator.modules.modes.passAllKeys=true

いけた!
(解決:vimperator事始 -補完- - souta-bot log)

その他

Windowsの場合DeliciousプラグインのCtrl-dが半ページDownに割り当てられているので
デフォルトではFirefoxの「全てのタブをブックマーク」に割り当てられているCtrl-Shift-dに変更
⇒Deliciousのダイアログが出たり、「全てのタブをブックマーク」が出たりでよくわからんのでしばらくはCtrl-v-dでやることにする

TreeStyleTab+FaviconizeTab

TreeStyleTabを入れて、FaviconizeTabは自動で全てのタブに適用するよう変更(Enable auto faviconizeにチェック、*で全てに適用)
移動しやすいようタブに数字を表示

:set go+=n

Macだと数字が表示されないので、FaviconizeTabを無効化

こんな感じ
Mac

Windows

.vimperatorrc

set complete=slb
set guioptions=rbn
set hintmatching=custom
set runtimepath=/Users/souta_bot/.vimperator
set wildoptions=auto
source! /Users/souta_bot/.vimperatorrc.local

autocmd LocationChange .* :js liberator.modules.modes.passAllKeys=false
autocmd LocationChange mail\.google\.com :js liberator.modules.modes.passAllKeys=true
autocmd LocationChange reader\.livedoor\.com\/reader :js liberator.modules.modes.passAllKeys=true
autocmd LocationChange www\.tumblr\.com\/dashboard :js liberator.modules.modes.passAllKeys=true

set hintmatching=custom