mtdtks
1/8/2013 - 4:21 PM

googlespreadsheetをvimキーバインドで操作したかったので設定してみた(要feedSomeKey_3.js) ※以下の設定をvimperatorrcにコピーすればhjklでの移動、insert-mode/normal-modeの切り替えとか出来ます

googlespreadsheetをvimキーバインドで操作したかったので設定してみた(要feedSomeKey_3.js)

※以下の設定をvimperatorrcにコピーすればhjklでの移動、insert-mode/normal-modeの切り替えとか出来ます

command! -nargs=+ lazy autocmd VimperatorEnter .* <args>

"googlespreadshet{{{
autocmd LocationChange '((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <C-j>

"insert-modeでの<esc>キーはspreadsheetでのエスケープキーにする(insert-modeは抜けない)
lazy fmaps -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i <esc>

"insert-mode/normal-modeの切り替え(iでinsert-mode/<C-j>でnormal-mode)
inoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <C-j> <esc>
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <C-j> <esc>
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' i gi

"hjkl
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' h gi<left><esc>
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' j gi<down><esc>
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' k gi<up><esc>
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' l gi<right><esc>

"shift+hjklで選択
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-h> gi<S-left><esc>
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-j> gi<S-down><esc>
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-k> gi<S-Up><esc>
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-l> gi<S-right><esc>

"yank(y)
nmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' y gi<M-a><M-c><C-j>
"paste(p)
nmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' p gi<M-v><C-j>
"undo(u)
lazy fmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i -events=keydown,keypress,keyup,vkeydown,vkeypress,vkeyup <C-1> <M-z><esc>
nmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' u gi<C-1><C-j>
"delete(x,d)
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' x gi<BS><ESC>
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' d gi<BS><ESC>

"行選択(S-v)
lazy fmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i -events=keydown,keypress,keyup,vkeydown,vkeypress,vkeyup <C-2> <S-space>
nmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-v> gi<C-2><C-j>

"列選択
lazy fmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i -events=keydown,keypress,keyup,vkeydown,vkeypress,vkeyup <C-0> <M-space>
nmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <C-v> gi<C-0><C-j>


"<C-h><C-l>でシートを移動
lazy fmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i -events=keydown,keypress,keyup,vkeydown,vkeypress,vkeyup <C-3> <C-S-PageUp><esc>
nmap -u='(drive|docs)\.google\.com.*/spreadsheet/ccc\?key=.*[0-9]+$' <C-h> gi<C-4><C-j>
lazy fmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i -events=keydown,keypress,keyup,vkeydown,vkeypress,vkeyup <C-4> <C-S-PageDown><esc>
nmap -u='(drive|docs)\.google\.com.*/spreadsheet/ccc\?key=.*[0-9]+$' <C-l> gi<C-4><C-j>

"新規シートの作成(S-n)
lazy fmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i -events=keydown,keypress,keyup,vkeydown,vkeypress,vkeyup <C-5> <S-F11>
nmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-n> gi<C-5><C-j>

"コンテキストメニューを表示(S-c)
lazy fmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i -events=keydown,keypress,keyup,vkeydown,vkeypress,vkeyup <C-6> <M-S-\>
nmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-c> gi<C-6>

"シートリストの表示(S-s)
lazy fmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i -events=keydown,keypress,keyup,vkeydown,vkeypress,vkeyup <C-7> <S-A-k>
nmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-s> gi<C-7>

"シートメニューを表示(S-m)
lazy fmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i -events=keydown,keypress,keyup,vkeydown,vkeypress,vkeyup <C-8> <A-S-s>
nmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-m> gi<C-8>

"ファイルメニューを表示(S-f)
lazy fmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' -modes=i -events=keydown,keypress,keyup,vkeydown,vkeypress,vkeyup <C-9> <C-A-f>
nmap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-f> gi<C-9>

"tab,S-tabでコンテキストメニュー選択
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <TAB> <down>
nnoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-TAB> <up>
inoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <TAB> <down>
inoremap -u='((drive|docs)\.google\.com).*(/spreadsheet/).*[0-9]+$' <S-TAB> <up>

"}}}