エイリアスで「/bin/bashコマンドが見つかりません」というエラーが発生するのはなぜですか?

エイリアスで「/bin/bashコマンドが見つかりません」というエラーが発生するのはなぜですか?

私はpython3、次のようにエイリアスを指定したいくつかのシルクヘビを使用していますpy

alias py="/opt/python3.4/bin/python3"

Pythonを実行したいvimので、次のように書いてください。

map <F9> :call SpecialCompileRun()<CR>
func! SpecialCompileRun()
    exec "w"
    if &filetype == 'python'
        exec '!time py %'                                                                                                                                                                               
    endif
endfunc

しかし、vimを押すと、次のF9メッセージが表示されます。

/bin/bash py cannot find command

pyに変更すると、python3今は動作しますが、まだ理由を知りたいです。

ベストアンサー1

定義した方法はpyシェルエイリアスであり、Vimはシェルエイリアスについて知らなかったり、興味がないからです。代わりに、次のように環境変数を使用します。

$ PY=/opt/python3.4/bin/python3
$ export PY

それからVimで:

...
exec '!time ' . fnameescape($PY) . ' %'
...

編集する: に追加してくださいfnameescape()$PYVimに特別な意味を持つ文字(fi#と)が含まれている場合は%必須です。

おすすめ記事