2017年05月11日
今巷で話題になっているTabNine(ディープラーニングを利用した補完プラグイン)をvimに導入したら
かなりよかった!!
これをpythonインターフェイスが有効になっていないvimで使いたい!
あと 環境を汚さず使いたい!
で行った作業が以下
おそらく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ライフが送れるようになる。