この記事はVim Advent Calendar 2014 - Qiita 22日目の記事です
21日目の記事は @mitsuseさんの非英語ネイティブでも Vim で快適に英語を書きたいでした
Vimアドベントカレンダーですが、ちょっと趣向を変えてVimperatorという、(常にvimキーバインドが良い && キーボードから手を離したくない人)に便利なFirefoxのアドオンを紹介します
いいところ
vimキーバインドでブラウジングが出来るようになります
例えばデスクトップアプリのKobitoとかYoruFukurouだとj
やk
で上下に移動することが出来ますが、そんな程度ではありません
今のところマウスを使うのは
- テキストをコピーする
- これはややめんどくさいので
- YouTubeなどのフレーム間移動(Embedモードからの脱出)
- vimperatorでも出来るはずだが手元ではうまくいかない
- 誰か教えてください
- vimperatorでも出来るはずだが手元ではうまくいかない
- 片手で操作したい時
- ご飯食べながらとか
くらいになりました
もちろん個人差はあります
簡単な使い方
移動
j
,k
: 上下のスクロールC-f
,C-b
,C-d
,C-u
: 0.5/1画面分の上下スクロールgg
,G
,10G
: ページの先頭、末尾、上から10%の所にジャンプgt
,gT
: 左右のタブに移動C-n
,C-p
でも可能
/
: ページ内検索n
,N
でヒットした単語にジャンプできる
移動はこんな感じ
ページの移動
f
: 表示領域内のリンクに番号を表示する- 表示された番号を入力するとクリックしたことになる
F
だと新しいタブで開く
⌥-←
,⌥-→
: 履歴の戻る/進むd
: ページを閉じるu
: 閉じたページを開き直すt
,o
: ページを開くt hoge
とタイプするとhoge
でWeb検索する- urlを入れると、そのurlを開く
o
だと今いるタブに、t
だと新しいタブに結果を表示する
リンクの開き方はこんな感じ
その他
:
: コマンドモードgi
: 1つめの入力ボックスにフォーカス3gi
で3つめにフォーカス- google検索など、検索ボックスに瞬時にフォーカス出来て便利
- 補完の選択:
Tab
とS-Tab
で選択できる
大体これくらいおぼえておけば普段は問題ないでしょう
個人的には入力ボックスへのフォーカスがめっちゃ便利だと思っていて、こんな感じにフォーカス出来ます
設定
本家vimと同様、vimperatorもカスタマイズすることが出来ます
設定ファイル
~/.vimperatorrc
に記述できます
自分で使っているものとして
" スクロールの端などの際に出るbeepをoff
set nobeep
" デフォルトの検索エンジン
set defsearch=google
" 検索キーワードのハイライト
set hlsearch
" j/k でのスクロール幅を 1行 から 3行 に変更
" map j 3jとかすると無限ループして死ぬ
map j 3<C-e>
map k 3<C-y>
" ddでタブを閉じる, dでは何もしない
no dd :tabclose<CR>
map d <NOP>
" h/lに戻る/進むを割り当て
map H <A-Left>
map L <A-Right>
" H/Lでタブ移動
map h gT
map l gt
" Shift + ←/→ で現在のタブの位置変更
map <S-Right> :tabmove! +1<CR>
map <S-Left> :tabmove! -1<CR>
などがあります
キーバインドを自由に設定できるのはストレスが無くて良いです
プラグイン
これも本家vim同様、様々なプラグインを導入することが出来ます
こちらはブラウザへの操作をするためにJavaScriptで記述します
~/.vimperator/plugin
ディレクトリにjsファイルを保存すれば読み込みます
vimpr/vimperator-pluginsに大量においてあります
プラグインについてはほんの少しはてブを検索するVimperatorプラグインを作った - petitviolet_blogに書いたことがあります
例えば、:ht vim
とするとはてなブックマークでvimタグがついたものを検索できるようにするプラグインだと下のように書けます
(function(){liberator.modules.commands.addUserCommand(["hatenaTag","hatena","ht"],"search from hatena bookmarks by tags",function(args){if(args.length===0){liberator.echo('input a query!');returnfalse;}// make "and" queryvarquery=args.join("+");varhatenaTagUrl='http://b.hatena.ne.jp/search/tag?safe=on&sort=recent&q='// open in a new tabliberator.open(hatenaTagUrl+query,liberator.NEW_TAB);returnfalse;},{},true);})();
あとよく使うのとして、SlideShareやSpeaker DeckのスライドをCtrl-l
/Ctrl-h
で進む/戻るにマッピングするプラグインを書いたりしました
この辺の自分で作ったのはpetitviolet/vimp-pluginsに置いてあります
作り方
更新が止まってしまっていますが、addUserCommand_for2.0pre - Vimperatorを参考にプラグイン開発が出来ます
所感
最近はGoogleChromeが人気で、Firefoxをまわりで使っている人がやや少なくなってきているように感じますが、vimperator使ってめっちゃ便利にFirefox使いましょう
ちなみに、GoogleChromeだと
みたいなのがあったりもします
明日
明日の記事は @s_of_pさんです