巷で話題のTabNineを入れてみた

2017年05月11日

今巷で話題になっているTabNine(ディープラーニングを利用した補完プラグイン)をvimに導入したら tabnine

かなりよかった!!

これをpythonインターフェイスが有効になっていないvimで使いたい!

あと 環境を汚さず使いたい!

で行った作業が以下

  1. anyenvをいれる
  2. anyenvでpyenvをいれる
  3. pyenvでpython(3.7.2)を入れる
  4. vimをpythonインターフェイスを有効にする設定でビルドする
  5. NineTab(You Complete Me)を入れる

おそらくpython3.7.2以外だと動かない。(古いとOpenSSLがないよとのエラー、新しいとvim起動したときにpythonインターフェイスのエラーが出る)

以下がvim環境構築シェルスクリプトの一部です。

vim --version | grep '\+python'

でpythonインターフェイスが有効かわかる。

configureのオプションは不要なものを加えている可能性あるのであとで調べる。

選択式にしてneocompleteを使うdein.tomlを読み込むようにしている。


  setup_vim () {
    cd ${DOTFILES}/vim
    echo ''
    echo '[入っているvim]'
    echo $(vim --version | head -n5)
    echo ''
    ispython=$(vim --version | grep '\+python')
    VIM=vim
    if [ -n "$ispython" ]; then
        echo "set YouCompleteMe"
        ln -sf ~/dotfiles/vim/vimrc.youcompleteme ~/.vimrc
        ln -sf ~/dotfiles/vim/dein.toml.youcompleteme ~/.dein.toml
    else
        echo ''
        echo 'pythonインターフェイスが使用できないvimを使用しています。'
        echo ''
        echo 'vimの環境をえらんでください。 (1 or 2 or cancel) '
        echo '1: neocomplete+neosnippets+neosnippets環境(簡単に使える補完)'
        echo '2: TabNine環境(ディープラーニングを使用した高度な補完)'
        echo '   (dotfiles以下に環境を構築します)'
        read vim_answer2
        case "$vim_answer2" in
        1)
            echo 'selected :1'
            ln -sf ~/dotfiles/vim/vimrc.neocomplete ~/.vimrc
            ln -sf ~/dotfiles/vim/dein.toml.neocomplete ~/.dein.toml
            ;;
        2)
            echo 'selected :2'
            PYTHON_VER=3.7.2
            if [ ! -e $ANYENV_DIR ]; then
                setup_anyenv
            fi
            PYENV="${ANYENV_DIR}/envs/pyenv/bin/pyenv"
            if [ ! -e $PYENV ]; then
                $ANYENV install pyenv
                $PYENV install $PYTHON_VER
                $PYENV global $PYTHON_VER
                $PYENV rehash
            fi
            if [ ! -e vim-8.1.1722 ]; then
                wget https://github.com/vim/vim/archive/v8.1.1722.tar.gz
                tar -xvf v8.1.1722.tar.gz
            fi
            cd vim-8.1.1722
            ./configure --prefix=${DOTFILES}/vim \
                --localstatedir=${DOTFILES}/vim \
                --enable-gpm \
                --enable-acl \
                --with-x=yes \
                --enable-gui=gtk2 \
                --enable-multibyte \
                --enable-cscope \
                --enable-perlinterp \
                --enable-pythoninterp \
                --enable-python3interp \

             make
             make install
             echo "alias vim=${DOTFILES}/vim/bin/vim"         >> ${HOME}/.zshrc.
 local
             echo "alias view=${DOTFILES}/vim/bin/view"       >> ${HOME}/.zshrc.
 local
             echo "alias vimdiff=${DOTFILES}/vim/bin/vimdiff" >> ${HOME}/.zshrc.
 local
             cd ..
             VIM="${DOTFILES}/vim/bin/vim"
             rm -rf ${DOTFILES}/v8*
             rm -rf ${DOTFILES}/vim-8.1.1722
             ;;
         *)
             echo 'vim setup canceled'
             return 0
             ;;
         esac
     fi
}

vimのNineTabはYou Complete MeをベースにつくられているのでPython インターフェイスが必要で+python3を有効にする必要がある。

これで快適なvimライフが送れるようになる。