title: Difference between :pyf % and :!python % for running python code
body: <p>I use to map <kbd>F9</kbd> to <code>:pyf %</code> to run python files from <code>vim</code>. But after reading this <a href="https://stackoverflow.com/questions/18948491/running-python-code-in-vim">answer</a>, which suggests</p>
  
  <pre><code>nnoremap &lt;buffer&gt; &lt;F9&gt; :exec '!python' shellescape(@%, 1)&lt;cr&gt;
  </code></pre>
  
  <p>Just wondering which approach should be preferred for running python code from <code>vim</code> session.</p>