Re: netswitch! | vim/rubyのための部分最適化

投稿者 nanki 2008-01-26 21:39:00 GMT

Re: netswitch! | vim/rubyのための部分最適化

今はこんな風になっている。

function SymbolUnderCursor(tran)
  return synIDattr(synID(line("."),col("."), a:tran),"name")
endfunction

function SmartSemicolon()
  execute "normal a "
  try
    throw SymbolUnderCursor(1)
  catch /rubyString\|rubyRegexp/
    execute "normal r;"
  catch /.*/
    execute "normal xo \<BS>"
  endtry
endfunction

function SmartEnd()
  execute "normal a1"
  try
    throw SymbolUnderCursor(0)
  catch /rubyString\|rubyRegexp\|rubyLocalVariableOrMethod/
    execute "normal xae\<Esc>and"
  catch
    execute "normal xae\<Esc>and\<Enter> \<BS>"
  endtry
endfunction
  
    
function SmartDefine()
  try
    throw SymbolUnderCursor(1)
  catch /rubyDefine/
    execute "normal oe\<Esc>and\<Esc>k"
  catch
  endtry 
endfunction
    
au FileType ruby imap <buffer> begin begin<Enter>
au FileType ruby imap <buffer> end  <Esc>:call SmartEnd()<CR>a
au FileType ruby imap <buffer> then then<Enter>
au FileType ruby imap <buffer> ensure ensure<Enter>
au FileType ruby imap <buffer> else else<Enter>
au FileType ruby imap <buffer> elsif elsif<Enter>
au FileType ruby imap <buffer> ; <Esc>:call SmartSemicolon()<CR>a
au FileType ruby imap <buffer> def def<Esc>:call SmartDefine()<CR>a
追記:
  • rubyRepeat追加

This entry was posted on 2008-01-26 21:39:00 GMT and カテゴリ , . You can follow any response to this entry through the Atom feed. or a trackback from your own site.

タグ ,


トラックバック

トラックバックリンク:
http://blog.netswitch.jp/trackbacks?article_id=8604