2017-07-20 12 views
1

F9:pyf %には、vimのpythonファイルを実行するために使用しました。しかし、単にvimセッションからPythonコードを実行するために好まれるべきアプローチ迷っpyf%と:!python%実行中のPythonコード

nnoremap <buffer> <F9> :exec '!python' shellescape(@%, 1)<cr> 

を示唆している、このanswerを読んだ後。

答えて

3

:pyfile:python(ファイルから直接引数ではなくコードを読み取る)の亜種です。両方ともコードをVimの組み込みPythonインタプリタの中で実行します。これは主に、Pythonで書かれたVimプラグインを対象としています。 VimのPythonインターフェイス(cp。:help python-vim)にアクセスでき、Vimを終了するまでコード/グローバルは保持されます。副作用のない些細なコードの場合

それはそのためのものではないですが、これは、問題ないはずです。


:!python ...のVimから完全に分離外部Pythonインタプリタを、起動。 VimはここでPythonのサポートでコンパイルする必要はありません。各呼び出しは別々のプロセスであるため、実行間には永続性はありません。コマンドラインから直接スクリプトを起動するのと同じように、それぞれ新鮮です。また、あなたはシステムのデフォルトのPythonインタプリタを使用している、いない1つのVimはに対してコンパイルされました。

あなたが明示的にVimのプラグインを書いている場合を除き、私は、このアプローチをお勧めします。

+0

おかげで、インゴが、これは私が探していたものです – dlmeetei

2

:pythonfileは、Pythonがvimに組み込まれたファイルを実行し、スクリプトはモジュールvimをインポートできます。

!python vim内部へのアクセス権を持たない外部インタープリタを実行します。

関連する問題