_vimperatorrc@0704

 _vimperatorrcを大分書き換えたので更新。主な変更点とかは以下。

  • いつも通りcodereposのdotfilesを参考に
  • feedSomeKeys.jsを入れたのでfmapを書いた
    • LDR Full Feedの為に多目的なgを殺すのはもったいないのでfmap f gとした。fは;oでも代用できる為
    • Minibuffer Bookmark Command のソースを書き換えてショートカットキーをb→Nにした後、LDR上にNを流した。LDR上でNを押すと一発ブクマ、それ以外でNを押すとVmiperatorデフォのキーバインドである「/や?で指定したパターンの後方検索」が優先される
      • ふつうにb押すとタブが開いてうっとうしかったのでこんな感じに
  • ホームページをLDRブックマークレットにした。gh→フィードを購読みたいな流れになってウマー
  • wildoptions=autoにした
    • exコマンドを実行する系のmapの補完を殺したりとかなんとか
  • wassrブームということでwassr.jsを入れたのでそれ関係とか
  • matanico.jsを入れた
    • 投稿時の要素の並び順をむぅもぉさんの本家「またニコニコ動画見てる」グリモンっぽくした
  • ,,スクロールを割り振った
    • splitBrowser使用時、メインのブラウザのフォーカスがLDRとかにあってキーがfmapに奪われていると、分割した側のブラウザでもキーが奪われてしまう。僕の設定だとjkJKあたりが使えなくなるのでその代わりとして
" noreply_vimperatorrc
" vimperator_1.2pre_2008-07-01.xpi	2008-Jul-01 07:30:04	234.2K	application/x-xpinstall
" http://vimperator.driftaway.org/

echo "loading..."

" / set /
set activate=
set complete=sl
set hintstyle+= font-size:15px;
set newtab=all
set preload
set scroll=5
set titlestring=Mozilla Firefox 3
set visualbell
set wildoptions=auto
set nextpattern+=next, 次(の)?ページ,\b次.*,→\b,下一頁,Следующая,・、・隹€
set previouspattern+=prev, 前(の)?ページ,\b前.*,\b←

" / set! /
set! browser.startup.homepage=javascript:location.href='http://reader.livedoor.com/subscribe/'+location.href
set! browser.tabs.closeButtons=3
set! browser.urlbar.filter.javascript=false
set! browser.urlbar.maxRichResults=50

" / normal mode /
noremap j 5j
noremap k 5k
noremap J <C-d>
noremap K <C-u>
noremap <C-j> <C-d>
noremap <C-k> <C-u>
map ,y mziggvGy<esc><esc>'z:delmarks z<CR>
"map gm :tabmove! +1<CR>
"map gM :tabmove! -1<CR>
"map \a :echo Application.extensions.all.map(function(e) e.name+" ("+e.id+")")<CR>
"map \l :ls!<CR>
"map \m :marks<CR>
"map \q :qmarks<CR>
"map ! :set invum<CR>

" / ex mode & insert mode /
cmap <C-n> <Tab>
cmap <C-p> <S-Tab>
cmap <C-f> <Right>
cmap <C-b> <Left>
cnoremap <C-v> <S-Insert>
inoremap <C-v> <S-Insert>

" / wildoptions=auto / http://unsigned.g.hatena.ne.jp/Trapezoid/20080620/1213961754
js <<EOM
[
	['!',':set invum'],
	['\\a',':echo Application.extensions.all.map(function(e) e.name+" ("+e.id+")")'],
	['\\b',':bicon'],
	['\\c',':colorschema'],
	['\\w',':wassr -footmark'],
	['\\l',':ls!'],
	['\\m',':marks'],
	['\\q',':qmarks'],
	['\\t',':twitter!?skashu'],
	[',b',':sbm'],
	[',m',':matanico'],
	[',s',':hatenastar 1'],
	['b',':hbinfo'],
	['W',':twitter watching %TITLE% - %URL%<'],
	['gb',':bentry'],
	['gB',':bentry!'],
	['gm',':tabmove! +1'],
	['gM',':tabmove! -1'],
].forEach(function([key,command]){
    liberator.mappings.addUserMap([liberator.modes.NORMAL], [key],
        "User defined mapping",
        function () { liberator.execute(command); },
        {
            rhs: key,
            noremap: true
        });
});
EOM

" / plugin /
" // browser_object.js //
map x dd

" // copy.js //
map c :copy<Space>
map C :copy hatenabookmark<CR> 
js <<EOM
liberator.globalVariables.copy_templates = [
  { label: 'titleAndURL',    value: '%TITLE% %URL%' },
  { label: 'title',          value: '%TITLE%' },
  { label: 'markdown',       value: '[%TITLE%](%URL% "%TITLE%")' },
  { label: 'markdownsel',    value: '[%SEL%](%URL% "%TITLE%")' },
  { label: 'htmlblockquote', value: '<blockquote cite="%URL%" title="%TITLE%">%HTMLSEL%</blockquote>' },
  { label: 'hatena',         value: '[%URL%:title=%TITLE%]' },
  { label: 'hatenabookmark', value: '<a href="%URL%">%TITLE%</a><a href="http://b.hatena.ne.jp/entry/%URL%"><img src="http://b.hatena.ne.jp/entry/image/%URL%" border=0></a>' },
  { label: 'hatenacite',     value: '>%URL%:title=%TITLE%>\n%SEL%\n<<' }
];
EOM

" // direct_bookmark.js //
let g:direct_sbm_use_services_by_tag = "h"
let g:direct_sbm_use_services_by_post = "h"
"map \b :bicon<CR>
"map ,b :sbm<CR>:echo "bookmarked!"
"map gb :bentry<CR>
"map gB :bentry!<CR>

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

" // hatenastar.js //
"map ,s :hatenastar 1<CR>

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

" // ldrize_cooperation //
let g:ldrc_captureMappings = "['j', 'k', 'p']"

" // matanico.js //
let g:matanico_status_format='$SERVICENAME : $SUBJECT $URL ($PLAYTIME) $COMMENT'
"map ,m matanico.js

" // stylechanger.js //
let g:styles = "BrightFocus,Tooltip,LDR,LDR_Article,Tab,TumblrDashboardBigPhotos"
"map \c :colorschema<CR>

" // twitter.js //
map ,t :twitter<space>
map gf :twitter!+@
map gs :t twitter?<space>
"map \t :twitter!?skashu<CR>
"map W :twitter watching %TITLE% - %URL%<CR>

" // wassr.js //
map ,w :wassr<space>
"map \w :wassr -footmark<CR>

" // feedSomeKeys.js //
autocmd LocationChange .* :fmapc

" 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

" livedoor Reader/Fastladder
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 i f u n B N".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>
autocmd LocationChange http://(reader\.livedoor\.com|fastladder\.com|0\.0\.0\.0\:3000)/reader/ :fmap f g

" Tumblr
js <<EOF
autocommands.add('LocationChange',/.*\.tumblr\.com\//,
  'js plugins.feedKey.setup("j k p o".split(/ +/));');
EOF
autocmd LocationChange http://.*\.tumblr\.com/ :fmap i tj

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

" ページのアクセスキーを無効化
js <<EOM
 liberator.options.setPref('ui.key.generalAccessKey', 0);
EOM

" タブの属性除去
js <<EOF
(function(){
var tabs = getBrowser().mTabs;
for (var i=0; i<tabs.length; i++){
  ['width','maxwidth','minwidth','flex'].forEach(function(attr)tabs[i].removeAttribute(attr));
}
document.getElementById('content').addEventListener('TabOpen',function(e){
  var t = e.originalTarget;
  ['width','maxwidth','minwidth','flex'].forEach(function(attr)t.removeAttribute(attr));
},false);
})();
EOF

"source! ~/_vimperatorrc.local

echo "done"