近年の Vim や neovim では、多くは python がインストールされていることを前提とした仕組みになっています。
特に、neovim の :checkhealth をすべて通過するには必要不可欠です。
この記事では、Vim / neovim でプラグインを使わずに「Vim / neovim で pythonのパスを指定する」ための設定方法について、ご紹介します。
Vim / neovim で pythonのパスを指定するオプション
ここで紹介する方法は、Vim / neovim のいずれでも設定方法は同じです。
オプション
let g:python3_host_prog = '{Python3の実行ファイルのパス}' let g:python_host_prog = '{Python2の実行ファイルのパス}'
こちらをコマンドとして実行する、あるいは設定ファイル(.vimrc / init.nvim など)に記載します。
Linux / Mac 設定例
let g:python3_host_prog = '/usr/bin/python3' let g:python_host_prog = '/usr/bin/python'
Windows 設定例
let g:python3_host_prog = 'C:\Program Files\Python37\python.exe' let g:python_host_prog = 'C:\Program Files\Python27\python.exe'
設定の確認方法
下記のコマンドを実行してみましょう。
設定値の確認
:echo g:python3_host_prog → Python3の実行ファイルのパスが表示されればOK :echo g:python_host_prog → Python2の実行ファイルのパスが表示されればOK
次の方法でも確認はできますが、設定したパスが有効かは正確にはわかりません。
:echo has('python3') → 1:OK, 0:NG :echo has('python') → 1:OK, 0:NG
複数のパスに異なるマイナーバージョンをインストールしてしまっている場合は注意が必要です。
実行確認
実際に、Pythonのコードを実行できれば良いわけです。例えば、次のようなコマンドになります。
:py print('OK') → 1:OK, エラー出力:NG :py3 print('OK') → 1:OK, エラー出力:NG
この確認方法についても、複数のパスに異なるマイナーバージョンをインストールしてしまっている場合は注意が必要です。
checkhealth
neovim だけは設定状態を確認するコマンドがあります。次のコマンドを実行してみましょう。
:checkhealth
実行結果は次のようになります。

neovim 特有ですが、こちらは複数マイナーバージョンをインストールしてしまったとしてもハッキリ良し悪しが分かるので安心ですね。
補足:Python有効状態
1. Pythonサポートの有効/無効
次のオプションを設定することで、Pythonサポートの有効/無効を設定できます。
let g:loaded_python3_provider = 1 → Python3を無効化 let g:loaded_python_provider = 1 → Pythonを無効化
2. コンパイル時点の Python 有効化
そもそもコンパイル時点で Python が有効化されていなければ、Vimでは利用できません。次のコマンドで確認しましょう。
:version

こちらは Vim だけでの確認方法となります。neovim で同じコマンドを実行しても確認できませんので、checkhealthコマンドで確認しましょう。
このVimコマンドの補足情報
- 利用頻度[star rate=1]
- 便利さ[star rate=2]
- 覚え易さ[star rate=2]
関連するVimヘルプ
Vimからは、下記のコマンドでヘルプを確認できます。
:help g:python3_host_prog :help g:python_host_prog
ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。
参考書籍
こちらの書籍が参考になります。
[temp id=3]