Vimでブラウザを操る
2014-12-22
QiitaVimVimperatorこの記事はVim Advent Calendar 2014 - Qiita 22 日目の記事です 21 日目の記事は @mitsuse さんの非英語ネイティブでも Vim で快適に英語を書きたいでした
Vim アドベントカレンダーですが、ちょっと趣向を変えてVimperatorという、(常に vim キーバインドが良い && キーボードから手を離したくない人)に便利なFirefoxのアドオンを紹介します
いいところ
vim キーバインドでブラウジングが出来るようになります
例えばデスクトップアプリの Kobito とか YoruFukurou だとj
やk
で上下に移動することが出来ますが、そんな程度ではありません
今のところマウスを使うのは
- テキストをコピーする - これはややめんどくさいので
- YouTube などのフレーム間移動(Embed モードからの脱出) - 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!');
return false;
}
// make "and" query
var query = args.join("+");
var hatenaTagUrl = 'http://b.hatena.ne.jp/search/tag?safe=on&sort=recent&q='
// open in a new tab
liberator.open(hatenaTagUrl + query, liberator.NEW_TAB);
return false;
},
{},
true
);
})();
あとよく使うのとして、SlideShareやSpeaker DeckのスライドをCtrl-l
/Ctrl-h
で進む/戻るにマッピングするプラグインを書いたりしました
この辺の自分で作ったのはpetitviolet/vimp-pluginsに置いてあります
作り方
更新が止まってしまっていますが、addUserCommand_for2.0pre - Vimperator を参考にプラグイン開発が出来ます
所感
最近は GoogleChrome が人気で、Firefox をまわりで使っている人がやや少なくなってきているように感じますが、vimperator 使ってめっちゃ便利に Firefox 使いましょう
ちなみに、GoogleChrome だと
みたいなのがあったりもします
明日
明日の記事は @s_of_p さんです
from: https://qiita.com/petitviolet/items/45973a3bd4878b01a390