概要
vimはvimscript以外に他の言語でも機能を拡張できるようになっています。
ultisnipsはpy3コマンドを使うようになったのでvimのpython3環境が必要です。
以前のultisnips
autoload/UltiSnips.vim
exec g:_uspy"import vim"
exec g:_uspy"from UltiSnips import UltiSnips_Manager"
今のultisnips
py3 import vim
py3 from UltiSnips import UltiSnips_Manager
今のvimの状態を確認してみる
python3のところが -になっているのを +にします
$ vim --version
+acl +eval +modify_fname +tag_old_static
+arabic +ex_extra +mouse -tag_any_white
+autocmd +extra_search -mouseshape -tcl
+autochdir -farsi +multi_byte +termguicolors
+autoservername +file_in_path +multi_lang +terminal
-balloon_eval +find_in_path -mzscheme -termresponse
+balloon_eval_term +float -netbeans_intg +textobjects
-browse +folding +num64 +textprop
++builtin_terms -footer +packages -tgetent
+byte_offset +gettext/dyn +path_extra +timers
+channel +guess_encode +perl/dyn +title
+cindent -hangul_input +persistent_undo -toolbar
+clientserver +iconv/dyn -postscript +user_commands
+clipboard +insert_expand +printer +vartabs
+cmdline_compl +job +profile +vertsplit
+cmdline_hist +jumplist +python/dyn +virtualedit
+cmdline_info +kaoriya +python3/dyn +visual
+comments +keymap +quickfix +visualextra
+conceal +lambda +reltime +viminfo
+cryptv +langmap +rightleft +vreplace
+cscope +libcall +ruby/dyn +vtp
+cursorbind +linebreak +scrollbind +wildignore
+cursorshape +lispindent +signs +wildmenu
+dialog_con +listcmds +smartindent +windows
+diff +localmap +startuptime +writebackup
+digraphs +lua/dyn +statusline -xfontset
-dnd +menu -sun_workshop -xim
-ebcdic +migemo/dyn +syntax -xpm_w32
+emacs_tags +mksession +tag_binary -xterm_save
解決策
python3環境を作る
対応するバージョンを入れる
sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
sudo yum install -y python35u python35u-libs python35u-devel python35u-pip
vimのpython3を有効にしてビルド
vimを持ってくる
git clone https://github.com/vim/vim.git
cd vim
makefileをつくる
ディレクトリとか他に必要なものがある場合はそれぞれ付け足してください
その場合開発パッケージも忘れずに
./configure \
--enable-fail-if-missing \
--enable-python3interp \
--with-python3-config-dir=/usr/lib64/python3.5/config-3.5m \
vi_cv_path_python3=/usr/bin/python3.5
sudo make install
※以下のような問題があるためおとなしくpython3のみ対応する方がいい気がします。
https://vim-jp.org/vimdoc-ja/if_pyth.html
Python 2 と Python 3 をサポートするにはそれらを動的ロードする必要があります。
Linux/Unix システムで動的ロード時にグローバルシンボルをインポートすると、2 番
目にロードした Python が使われたときにクラッシュが発生します。そのため、グロー
バルシンボルをロードして一つの Python バージョンだけを使うか、グローバルシンボ
ルをロードしないかのどちらかしかありません。後者は特定のライブラリ (シンボルが
Vim から提供されていることを期待しているライブラリ) において Python の
"import" が失敗するようになります。
おわり
先ほどのvim --version確認で + になっていれば問題なく使用できていると思います。