プラグインも作ったことだしそろそろvimperatorrcでも晒してみるの巻

そんな感じで晒してみます。
ちなみに、入れてるプラグインはこんな感じ

  • xpathBlink.js
  • bookmarktoolbar-hint.js
  • char-hints-mod.js
  • command_menu.js
  • commandBookmarklet.js
  • copy.js
  • direct_bookmark.js
  • encodingSwitcher.js
  • feedSomeKeys.js
  • gmail_biff.js
  • gmperator.js
  • googlesuggest.js
  • ime_controller.js
  • ldr_unread_counter.js
  • ldrize_cooperation.js
  • ldrize_cooperation_fetch_flv.js
  • localkeymode.js
  • lookupDictionary.js
  • nicontroller.js
  • noscript.js
  • proxy.js
  • relative_move.js
  • sbmcommentsviewer.js
  • scroll_div.js
  • uaSwitch.js
  • ubiquity.js
  • walk-input.js
死ぬほど減らしてこんな感じです。
最低限使うのだけ残した感じ。

でもって、vimperatorrc はこんな感じ。
かなり頻繁に書き換えてるので、明日の時点ではまた変わるかもしれんです。


"" ** notice!! **
""
"" firegestures のロッカージェスチャはクイックリンクがきかなくなるらしいので、無効にすること。
""

"" エラーコンソール出力レベル
"" →「:javascript! 」で表示される内容レベル 9->たくさん表示
""set verbose=9

"" 検索での大文字小文字を無視
set ic

"" スクロールの端などの際に出るbeepをoff
set novisualbell

"" 新規タブを開いた際にアクティブにする機能
set activate=homepage,quickmark,tabopen,paste

"" :[tab]open コマンドで補完する候補と順番
set complete=sl
set suggestengines=google

"" exモード時の補完候補がTabキーを押さなくても自動的に表示されて、キー入力するたびに更新
set wildoptions=auto

"" おせっかいユーザビリティーを無効化
set focuscontent

""] ]
set nextpattern+=next, 次(の)?ページ,\b次.*,→\b,下一頁,Следующая,・、・隹€
""[ [
set previouspattern+=prev, 前(の)?ページ,\b前.*,\b←

"" ブラウザタイトルの変更   Firefox デフォルトは 「Mozilla - Firefox
set titlestring=Mozilla Firefox

"" ウィンドウ表示設定(m:メニュー,T:アドレスバー,b:リンクバー)
set guioptions+=mT

"" 検索キーワードのハイライト
set hlsearch

"" 最初の補完を早くする(らしい)
set preload

"" エディタ設定
set editor="C:\\Personal\\Apps\\Editor\\sakura\\sakura.exe"

"" HintのStyle
set hintstyle=z-index:5000; font-family:monospace; font-size:12px; color:white; background-color:blue; border-color:ButtonShadow; border-width:0px; border-style:solid; padding:0px 1px 0px 1px; position:absolute;

"" migemo_hint.js
""set hintmatching=custom

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

"" 上のディレクトリに移動
""map <BS> gu
map <S-BS> gu
map <C-BS> gU

"" j/k でのスクロール幅を 1行 から 5行 に
noremap j 5j
noremap k 5k
noremap J <C-d>
noremap K <C-u>

"" Backspace に戻るを割り当て
map <BS> <A-Left>

"" 戻るや進むを割り当て
map H <A-Left>
map L <A-Right>

"" ex modeでC-jを無効化
cmap <C-j> <Nop>

"" ex modeでUp/DownをTab/S-Tab互換に
cmap <Down> <Tab>
cmap <Up> <S-Tab>

"" URL中の数字を++/--
mapc +
mapc -
noremap ++ <C-a>
noremap -- <C-x>

"" for migemo search
map <C-f> <C-v>/gi

"" コマンドライン、テキストエリア内ではC-v,C-xで貼付/切取
noremap <C-a> <C-v><C-a>
inoremap <C-a> <C-v><C-a>
cnoremap <C-a> <C-v><C-a>

inoremap <C-c> <C-v><C-c>
cnoremap <C-c> <C-v><C-c>

inoremap <C-v> <S-Insert>
""inoremap <C-v> <C-v><C-v>
cnoremap <C-v> <S-Insert>
""cnoremap <C-v> <C-v><C-v

inoremap <C-x> <S-Del>
""inoremap <C-x> <C-v><C-x>
cnoremap <C-x> <S-Del>
""cnoremap <C-x> <C-v><C-x>

inoremap <C-z> <C-v><C-z>
cnoremap <C-z> <C-v><C-z>

"" Add Mapping `C-c copy or stop loading
javascript <<EOM
liberator.mappings.addUserMap([liberator.modes.NORMAL,liberator.modes.INSERT], ['<C-c>'],
    'Copy selected text or ',
    function () {
        var sel = document.getSelection();
//        var sel = liberator.buffer.getCurrentWord();
        if (sel) {
            liberator.copyToClipboard(sel, true);
            echo('Yanked: ' + liberator.util.escapeHTML(sel) );
        } else {
            BrowserStop();
            liberator.echo('Stopped loading !');
        }
    } , {}
);
EOM

"" ,/ ,n で検索(For GMail)
javascript <<EOM
liberator.mappings.addUserMap([liberator.modes.NORMAL],
    [',/'], 'Search forward for a pattern',
    function() { liberator.search.openSearchDialog(liberator.modes.SEARCH_FORWARD);}
);
liberator.mappings.addUserMap([liberator.modes.NORMAL],
    [',n'], 'Search forward for a pattern',
    function() { liberator.search.findAgain(false);}
);
EOM

"" ,m で最大化/元のサイズ
javascript <<EOM
liberator.mappings.addUserMap([liberator.modes.NORMAL],
    [',m'], 'toggle Maximize',
    function() { window.windowState == window.STATE_MAXIMIZED ? window.restore() : window.maximize();}
);

EOM

javascript <<EOM
[
    ['h',':tabprevious'],              //タブ移動
    ['l',':tabnext'],
    ['<S-Left>',':tabprevious'],
    ['<S-Right>',':tabnext'],
    ['<C-Left>',':tabmove! -1'],       //現在のタブの位置変更
    ['<C-Right>',':tabmove! +1'],
    ['<C-h>',':tabmove! -1'],
    ['<C-l>',':tabmove! +1'],
    ['<C-r>',':restart'],              //C-r でブラウザ再起動
    [',s',':so .vimperatorrc'],        //設定ファイルを再読み込み
    [',S',':mapc\n:cmapc\n:imapc\n:so .vimperatorrc'],
    ['!',':set invum'],                //! でページのCSSをon/off
    [';l',':closerighttabs'],
    [';h',':closelefttabs'],
    ['A',':dialog addbookmark'],
    // for plugin functions
    [',es',':set fenc=Shift_JIS'],
    [',ee',':set fenc=EUC-JP'],
    [',eu',':set fenc=utf-8'],
    [',l',':toggleldrizecooperation'],
    [',z',':viewSBMComments'],
    [',k',':togglelocalkeymode'],
    [',p',':tabopen chrome://browser/content/places/places.xul'],    //ブックマークを表示
    [',1', ':set go=\n:set stal=1\n'],    // バーの表示切り替え
    [',2', ':set go=mb\n:set stal=1\n'],
    [',3', ':set go=mT\n:set stal=1\n'],
    [',4', ':set go=mTb\n:set stal=1\n'],
    [',0', ':set go=\n:set stal=0\n'],
].forEach(function([key,command]){
    liberator.mappings.addUserMap([liberator.modes.NORMAL], [key],
        "User defined mapping",
//        function () { liberator.execute(command); },
        function () { command.split("\n").forEach(function(cmd){liberator.execute(cmd);} ); },
        {
            rhs: key,
            noremap: true
        });
});
EOM

"" コマンドラインC-xでURL補完 -- http://mattn.kaoriya.net/software/firefox/vimperator/20080804213818.htm
javascript <<EOM
(function() {
    liberator.mappings.addUserMap([liberator.modes.COMMAND_LINE], ['<c-x>'],
        "insert current URL to command line",
        function () {
            var cmdline = liberator.CommandLine();
            var curcmd = cmdline.getCommand();
            if (!curcmd.match(/ $/)) curcmd += ' ';
            cmdline.open(":", curcmd+liberator.buffer.URL);
        }
    );
})();
EOM

"" sbmcommentsviewer.js
let g:def_sbm_format = "timestamp,id,tagsAndComment"

"" direct_bookmark.js
let g:direct_sbm_use_services_by_tag = "d"
let g:direct_sbm_use_services_by_post = "d"
let g:direct_sbm_is_normalize = "false"
let g:direct_sbm_is_use_migemo = "true"
map ,a :sbm<Space>
map a :sbm<Space>

"" ldr_cooperation.js
""let g:ldrc_captureMappings = "['t', 'h', 'l', 'j', 'k', 'p', 'o', '?']"
let g:ldrc_captureMappings = "[ 'j', 'k', 'p', 'o', '?']"

let g:ldrc_hints = "true"
let g:ldrc_intelligence_bind = "true"
let g:ldrc_skip = "0.2"

"" copy.js
javascript <<EOM
liberator.globalVariables.copy_templates = [
   { label: 'titleAndURL',    value: '%TITLE% %URL%' },
   { 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

"" feedSomeKeys.js
autocmd LocationChange .* :fmapc

"" livedoor Reader UnRead Count
let livedoor_id = "xxxxxx"

"" Gmail/LDR/Fastladder/OpenFL上では新規タブをバックグラウンドで開く
autocmd LocationChange (?!https?://(mail\.google\.com\/(mail|a)\/|(reader\.livedoor\.com|fastladder\.com|0\.0\.0\.0\:3000)/reader/)) :set! browser.tabs.loadDivertedInBackground=false
autocmd LocationChange https?://(mail\.google\.com\/(mail|a)\/|(reader\.livedoor\.com|fastladder\.com|0\.0\.0\.0\:3000)/reader/) :set! browser.tabs.loadDivertedInBackground=true

"" livedoor Reader/Fastladder/OpenFL
js <<EOF
autocommands.add('LocationChange',/reader\.livedoor\.com\/reader\//,
  'js plugins.feedKey.setup("j k s a p v c <Space> <S-Space> z Z < > q w b i u g G".split(/ +/));');
EOF

js <<EOF
autocommands.add('LocationChange',/(fastladder\.com|0\.0\.0\.0\:3000)\/reader\//,
  'js plugins.feedKey.setup("j k s a p v c <Space> <S-Space> z Z < > q w".split(/ +/));');
EOF
autocmd LocationChange http://(reader\.livedoor\.com|fastladder\.com|0\.0\.0\.0\:3000)/reader/ :fmap o vj
autocmd LocationChange http://(reader\.livedoor\.com|fastladder\.com|0\.0\.0\.0\:3000)/reader/ :fmap J <Space>
autocmd LocationChange http://(reader\.livedoor\.com|fastladder\.com|0\.0\.0\.0\:3000)/reader/ :fmap K <S-Space>

"" Google Reader
js <<EOF
autocommands.add('LocationChange',/www\.google\.(com|co\.jp)\/reader\//,
  'js plugins.feedKey.setup("j k n p N P X O s S v t m o <Space> <S-Space> <enter> A e gh ga gs gS gu gt gT gd r u 1 2 / a = - ? z Z <C-z>".split(/ +/)'
  +',true);');
EOF
autocmd LocationChange http://www\.google\.(com|co\.jp)\/reader/ :vfmap J <Space>
autocmd LocationChange http://www\.google\.(com|co\.jp)\/reader/ :vfmap K <S-Space>

"" for modiphi
js <<EOF
autocommands.add('LocationChange',/www\.modiphi\.com\/apps\/reader/,
  'js plugins.feedKey.setup("n p <Space>".split(/ +/));');
EOF

"" Gmail
js <<EOF
autocommands.add('LocationChange',/mail\.google\.com\/(mail|a)\//,[
  'js plugins.feedKey.setup(',
  '"c / y j k n p o u e x s r a # [ ] z ? gi gs gt gd ga gc".split(/ +/).map(function(i) [i, "4" + i])',
  ');'
].join(''));
EOF

"" ステータスバーにfeedボタンを表示
"" 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

"" for Livedoor Reader Subscribe
javascript <<EOM
liberator.commands.addUserCommand(["subscribeldr","sldr"], "post to livedoor reader",
  function (arg){
    liberator.open("http://reader.livedoor.com/subscribe/"+liberator.buffer.URL);
  }
);
EOM

"" ←のタブを全て閉じる
javascript <<EOM
liberator.commands.addUserCommand(["closelefttabs"], "close left tabs",
function(){
  var tabs = gBrowser.mTabContainer.childNodes;
  for (var i = tabs.length - 1; tabs[i] != gBrowser.mCurrentTab; i--){}
  for (i--; i >=0 ; i--) gBrowser.removeTab(tabs[i]);
});
EOM

"" →のタブを全て閉じる
javascript <<EOM
liberator.commands.addUserCommand(["closerighttabs"], "close right tabs",
function(){
  // 右のタブをすべて閉じる
  var tabs = gBrowser.mTabContainer.childNodes;
  for (var i = tabs.length - 1; tabs[i] != gBrowser.selectedTab; i--) gBrowser.removeTab(tabs[i]);
});
EOM

"" ローカルキーモード設定
javascript <<EOM
liberator.globalVariables.localKeyMappings=[
    ['^http://www\.nicovideo\.jp/watch/', [
        ['p', ':nicopause'],
        ['m', ':nicomute'],
        ['v', ':nicommentvisible'],
        ['s', ':nicoseek! +5'],
        ['S', ':nicoseek! -5'],
        ['l', 'nicovolume! +5'],
        ['L', 'nicovolume! -5'],
        ['z', ':nicosize ', true],
        ['c', ':nicomment ', true],
        ['C', ':nicommand ', true],
    ] ],
    ['^https://', [
        ['e', '<space>',true],
    ] ],
//    ['', [
//        ['', ''],
//    ] ],
];
EOM

"" 読み込んだ事を出力
echo ".vimperatorrc sourced"

以上!!