我用來映射F9到:pyf %
以從vim
運行python文件。但是閱讀本answer之後,這表明用於運行python代碼的pyf%和:!python%之間的區別
nnoremap <buffer> <F9> :exec '!python' shellescape(@%, 1)<cr>
只是想知道哪種方法應首選自vim
會話中運行Python代碼。
我用來映射F9到:pyf %
以從vim
運行python文件。但是閱讀本answer之後,這表明用於運行python代碼的pyf%和:!python%之間的區別
nnoremap <buffer> <F9> :exec '!python' shellescape(@%, 1)<cr>
只是想知道哪種方法應首選自vim
會話中運行Python代碼。
:pyfile
是:python
(它從文件讀取代碼,而不是直接參數)的變體。兩者都在Vim的嵌入式Python解釋器內執行代碼。這主要是用於Python編寫的Vim插件。您可以訪問Vim的Python界面(cp。:help python-vim
),任何代碼/全局變量都會一直存在,直到您退出Vim。
對於沒有副作用的瑣碎代碼,這應該沒問題,但它並不意味着這一點。
:!python ...
啓動一個外部Python解釋,從Vim的完全分開的。 Vim甚至不需要在這裏編譯Python支持。由於每個調用都是一個獨立的進程,所以在運行之間沒有持久性。每一個都是新鮮的,就像直接從命令行啓動腳本一樣。另外,您正在使用系統的默認Python解釋器,而不是Vim編譯的版本。
我會推薦這種方法,除非你明確寫了一個Vim插件。
:pythonfile
使用內置在vim中的Python執行文件,因此腳本可以導入模塊vim
。
!python
執行沒有任何訪問vim內部的外部解釋器。
謝謝,因戈,這是我一直在尋找 – dlmeetei