vimの便利なPlugin(その8)neocomplete

   2018/03/22

IDEで当たり前の関数名や変数の補完は、素のvimでも可能ですが、より高機能のneocompleteをご紹介します。このPluginもShougoさんの開発されているものです。 すごいですね! CentOS6でインストールされるvimパッケージでは、lua込みでコンパイルされていないため、vimソースからインストールする必要があります。

Install

  • vimがluaと共にコンパイルされているかを確認。
/usr/bin/vim –version | grep lua

以下の様に -lua となっていたら含まれていませんのでソースからコンパイルする必要があります。

+dialog_con      -lua             +rightleft       +windows
  • 必要なパッケージをインストール
sudo yum install python-devel
sudo yum install gettext-devel
sudo yum install lua-devel
  • vim7.4ソースコードのダウンロード。
cd /usr/local/src/
sudo wget ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2

tarで解凍して、configureを実行します。 configureのオプションは configure –helpでご確認下さい。

sudo tar xvf vim-7.4.tar.bz2
cd vim-7.4

CentOS6の場合

sudo ./configure –prefix=/usr/local/vim74 –enable-nls –enable-acl –enable-luainterp –enable-pythoninterp –enable-perlinterp –with-features=huge –with-python-config-dir=/usr/lib64/python2.6/config

CentOS7の場合

sudo ./configure –prefix=/usr/local/vim74 –enable-nls –enable-acl –enable-luainterp –enable-pythoninterp –enable-perlinterp –with-features=huge –with-python-config-dir=/usr/lib64/python2.7/config
  • configure エラーの対応。

no terminal library found
checking for tgetent()… configure: error: NOT FOUND!
You need to install a terminal library; for example ncurses.
Or specify the name of the library with –with-tlib.

terminal libraryがインストールされていないためのエラー。 ncurses-develをインストール。

sudo yum install ncurses-devel

再度configureコマンドを実行したら、configure はOKになった。

  • makeしてみるとまたエラー、、、

/usr/bin/perl -e ‘unless ( $] >= 5.005 ) { for (qw(na defgv errgv)) { print “#define PL_$_ $_\n” }}’ > auto/if_perl.c
/usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp -prototypes -typemap \
/usr/share/perl5/ExtUtils/typemap if_perl.xs >> auto/if_perl.c
Can’t open perl script “/usr/share/perl5/ExtUtils/xsubpp”: そのようなファイルやディレクトリはありません
make[1]: *** [auto/if_perl.c] エラー 2
make[1]: ディレクトリ `/usr/local/src/vim74/src’ から出ます
make: *** [first] エラー 2

ググってみると、perl-ExtUtils-Embed がどうやらインストールする必要がありそう。

sudo yum install perl-ExtUtils-Embed

これでmakeが通ったので、installしてみた。

ただし、CentOS7は、yumコマンドでインストールされるのは、「/usr/share/perl5/vendor_perl/ExtUtils」であるため、「src/Makefile」を書き換える必要があります。

auto/if_perl.c: if_perl.xs
$(PERL) -e ‘unless ( $$] >= 5.005 ) { for (qw(na defgv errgv)) { print “#define PL_$$_ $$_\n” }}’ > $@

/usr/share/perl5/ExtUtils

/usr/share/perl5/vendor_perl/ExtUtils

make
make install

luaが含まれているかを確認。

/usr/local/vim74/bin/vim –version | grep lua
+dialog_con      +lua             +rightleft       +windows

+luaとなったのでインストールは終了。

  • neocompleteのインストール

dein.vimを前提とさせていただきます。 まだ、dein.vimを使っていない方は(その5)から。 .vimrcにいかの行を追加します。

call dein#add(‘Shougo/neocomplete.vim’)

これで「:call dein#install()」をコマンドラインモードで実行すればインストールは終了。

使い方

まずは、.vimrcに設定をいれてみます。

“起動時に有効
let g:neocomplete#enable_at_startup = 1
” ポップアップメニューで表示される候補の数
let g:neocomplete#max_list = 50
“キーワードの長さ、デフォルトで80
let g:neocomplete#max_keyword_width = 80
let g:neocomplete#enable_ignore_case = 1
highlight Pmenu ctermbg=6
highlight PmenuSel ctermbg=3
highlight PMenuSbar ctermbg=0
inoremap <expr><CR>  pumvisible() ? neocomplete#close_popup() : “<CR>”

設定の詳細は、「:help neocomplete」で確認して見て下さい。 補完を試してみた結果こちら。(※wordpressのソースファイルを開いて試してみました。)

necomplete_disp

highlightで設定したポップアップの色は、お好みに応じて。こちらのリンクが参考になります。 色設定の参考はこちらで

インサートモードで、2文字を入力すると候補がポップアップされます。このポップアップの文字数を変更したい場合は、「g:neocomplete#auto_completion_start_length」の値を変更して下さい。ポップアップリストからの選択は、Ctrl-n で次の候補、Ctrl-p で前の候補へ移動できます。 選択した候補上でエンターすると確定でき、Ctrl-[ でキャンセルができます。

 

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら