Python
Vim
neovim

nvimでのpython3_host_progをwhich python3で定義する

pythonのpathが違う環境でも同じinit.vimを使いたいので

let g:python3_host_prog = substitute(system('which python3'),"\n","","")

whichでpython3のフルパスを取得できます。そしてsystem関数でシェルコマンドを実行できます。これらを組み合わせるとneovimにpython3のpathを設定できると思いました。しかし、:echo system('which python3')をneovimで実行すると/usr/bin/python3の後ろに改行が入っていました。なので、substitute関数で改行を削除します。第1引数は置換対象文字列、第2引数はパターン、第3引数は置き換え文字列、第4引数はflagです。:echo substitute(system('which python3'),"\n","","")で改行が削除されているのがわかると思います。