Firefox 3 + Vimperator の拡張&プラグイン

Firefox 3 の正式版が出たので、閲覧用のプロファイルにインストールする拡張・プラグインを整理したのでメモ。
すっかり Vimperator に馴染んだためにいらなくなった拡張(Make Link, FireGestures など)を捨てて最小限の構成になりすっきりしました。FF3 の高速レンダリングと相まって最速ブラウジングが可能になりました。
なお、これは閲覧用なので Firebug とか Web Developer などの開発用ツールは入ってないです。

メイン。もはや Firefox ではなくて Vimperator。
正式版のバージョンは 1.1 だが、最新の機能を使うため、デイリービルドからベータ版をインストール。
使用中の Vimperator プラグイン。

    • autoIgnoreKey.js
    • copy.js
    • direct_hb.js
    • hatenabookmark_show.js
    • ime_controller.js
    • ldrize_cooperation.js
    • lookupDictionary.js
    • migemo_hint.js
    • walk-input.js

プラグインは /lang/javascript/vimperator-plugins/trunk/ - CodeRepos::Share - Trac に集まっています。

うるさい Flash 広告を消す。定番。

定番。Vimperator でも、「新規タブで開く」等のタブ制御やセッションマネージャのために重宝する。正式版は Firefox 3 に対応していないため、開発ビルドをインストール。

ローマ字のまま日本語をインクリメンタルサーチできる MigemoFirefox 版。Vimperator プラグインの migemo_hint.js のために必要。Migemo いいよ Migemo !

グリモン。インストールしているスクリプトは超定番 3 つ。

最後に _vimperatorrc を晒します。

" teppeis .vimperatorrc
" 1.0 (created: 2008/05/17 07:30:04)

""""""""""""""""""""""""""""""""""""""""
" Mappings

"" scroll
noremap j 5j
noremap k 5k
noremap J <Down><Down><Down><Down><Down><Down>
noremap K <Up><Up><Up><Up><Up><Up>

"" select next/previous tab
"noremap l gt
"noremap h gT
noremap <C-l> gt
noremap <C-h> gT

"" move current tab left/right
map <C-L> :tabmove! +1<CR>
map <C-H> :tabmove! -1<CR>

"" ex mode
cmap <C-n> <Tab>
cmap <C-p> <S-Tab>
cmap <C-f> <Right>
cmap <C-b> <Left>

"" bookmark bar, menubar, toolbar
map <A-b> :set guioptions+=b<CR>
"map ,b :set guioptions+=b<CR>
map <A-B> :set guioptions-=b<CR>
"map ,B :set guioptions-=b<CR>
"map ,t :toggleToolbar<CR>
map <A-Down> :set guioptions+=mT<CR>
map <A-Up> :set guioptions-=mT<CR>

"" yank
map <C-c> Y

"" search for selected text
map <C-F> YP
imap <C-F> <Esc>YP

"" css
map ! :set invum<CR>

"" cansel highlight with pounding Esc
map <Esc><Esc> :nohlsearch<CR>

""""""""""""""""""""""""""""""""""""""""
" Options

set guioptions=
set titlestring=Vimp
set verbose=9
set visualbell
set history=1000
set newtab=all
set wildoptions=auto
set complete=sfl
set defsearch=g

"" next (]]), previous (]])
set nextpattern+=next, 次(の)?ページ,\b次.*,→\b
set previouspattern+=prev, 前(の)?ページ,\b前.*,\b←

"" Speed up first time history/bookmark completion
set preload

"" editor
set editor=gvim -f

""""""""""""""""""""""""""""""""""""""""
" Plugins

"" ime_control.js
let g:ex_ime_mode = "inactive"

"" ldrize_cooperation.js
let g:ldrc_captureMappings = "['j', 'k', 'p', 'o', '?']"
let g:ldrc_intelligence_bind = "true" 
let g:ldrc_skip = "0.25" 

"" autoIgnoreKey.js
javascript <<EOM
liberator.globalVariables.autoignorekey_pages = uneval([
  /^https?:\/\/mail\.google\.com\//, 
  /^https?:\/\/fastladder\.com\//, 
  /^https?:\/\/reader\.livedoor\.com\/reader/,
]);
EOM

"" copy.js
javascript <<EOM
liberator.globalVariables.copy_templates = [
   { label: 'titleAndURL',    value: '%TITLE% %URL%' },
   { label: 'titleLfURL',     value: '%TITLE%\n%URL%', map: '<C-C>' },
   { label: 'title',          value: '%TITLE%' },
   { label: 'hatena',         value: '[%URL%:title=%TITLE%]' },
   { label: 'hatenacite',     value: '>%URL%:title=%TITLE%>\n%SEL%\n<<' },
   { label: 'markdown',       value: '[%SEL%](%URL% "%TITLE%")' },
   { label: 'htmlblockquote', value: '<blockquote cite="%URL%" title="%TITLE%">%HTMLSEL%</blockquote>' }
];
EOM

"" hatenabookmark_show.js
map b :hbinfo<CR>

"" direct_hb.js
map a :hb<space>
map A :hb<CR>

"" lookupDictionary.js
javascript <<EOM
var dictionalyList = [
    {
        names: ['eiji[ro]'],
        url: 'http://eow.alc.co.jp/%s/UTF-8/',
        shortHelp: '英辞郎',
        xpath: '//*[@id="resultList"]'
    },{
        names: ['goo'],
        url: 'http://dictionary.goo.ne.jp/search.php?MT=%s&kind=all&mode=0',
        shortHelp: 'goo辞書',
        encode: 'EUC-JP',
        xpath: '//div[@id="incontents"]/*[@class="ch04" or @class="fs14" or contains(@class,"diclst")]',
        multi: true
    }
];
EOM

"" migemo_hint.js
set hintmatching=custom

""""""""""""""""""""""""""""""""""""""""
" Scripts

"" Show feed-button to statusbar
"" http://d.hatena.ne.jp/teramako/20071205/p1
javascript <<EOM
(function () {
var feedPanel = document.createElement('statusbarpanel');
var feedButton = document.getElementById('feed-button');
    feedPanel.setAttribute('id','feed-panel-clone');
    feedPanel.appendChild(feedButton.cloneNode(true));
    feedButton.parentNode.removeChild(feedButton);
    document.getElementById('status-bar')
        .insertBefore(feedPanel,document.getElementById('security-button'));
})();
EOM

"" disable accesskey
javascript <<EOM
liberator.options.setPref('ui.key.generalAccessKey', 0);
EOM

""""""""""""""""""""""""""""""""""""""""
" Abbreviations

""""""""""""""""""""""""""""""""""""""""
" Etc

source! ~/_vimperatorrc.local

" vim: set ft=vimperator: