素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: twitter: @javascripter にどうぞ。

autocomplpop.vimでJavaScriptのomni補完をできるようにする

Firebugでインデントつきのソースを書くのは厳しいことに気づいた。
ある程度長いプログラムを書くときはエディタでやろうと思い、エディタってどんなものがあるのかなーと調べたら、vimというのがかっこよかったので、インストールした。
さらに調べ、autocomplpop.vim - vimグループというものを見つけた。

JavaScriptではomni補完ができないので、辞書ファイルを用意したのだが、あまり賢くなかった。

ので、ソースをいじってJavaScriptでもomni補完をできるようにした。
vimには詳しくないので手探り。もっといい方法があるかも。

まず、autocomplpop.vimの371行目あたりに、

      \   'ruby' : [

という行があるので、その前の行に

	  \   'javascript' : [
      \     {
      \       'command'  : "\<C-n>",
      \       'pattern'  : '\k\k$',
      \       'excluded' : '^$',
      \       'repeat'   : 0,
      \     },
      \     {
      \       'command'  : "\<C-x>\<C-f>",
      \       'pattern'  : (has('win32') || has('win64') ? '\f[/\\]\f*$' : '\f[/]\f*$'),
      \       'excluded' : '[*/\\][/\\]\f*$\|[^[:print:]]\f*$',
      \       'repeat'   : 1,
      \     },
      \     {
      \       'command'  : "\<C-x>\<C-o>",
      \       'pattern'  : '\([^. \t]\.\)$',
      \       'excluded' : '^$',
      \       'repeat'   : 0,
      \     },
      \   ],

というのを追加した。
そしてvimを再起動。
できるようになった。やったあ。



追記:コメント欄を参考に、
_vimrcに

let g:AutoComplPop_Behavior={'javascript' : [
      \     {
      \       'command'  : "\<C-n>",
      \       'pattern'  : '\k\k$',
      \       'excluded' : '^$',
      \       'repeat'   : 0,
      \     },
      \     {
      \       'command'  : "\<C-x>\<C-f>",
      \       'pattern'  : (has('win32') || has('win64') ? '\f[/\\]\f*$' : '\f[/]\f*$'),
      \       'excluded' : '[*/\\][/\\]\f*$\|[^[:print:]]\f*$',
      \       'repeat'   : 1,
      \     },
      \     {
      \       'command'  : "\<C-x>\<C-o>",
      \       'pattern'  : '\([^. \t]\.\)$',
      \       'excluded' : '^$',
      \       'repeat'   : 0,
      \     },
      \   ]}

とすれば、プラグイン直接いじらなくていいようだ。パターンの書き方悪いからポップアップしないときとかあるけど。