⑴ Mac Vim python 問題解決方法
Mac Vim Python 調用問題解決方法 vim link python 2
最好的方法用macvim取代vim,用下面的語句
安裝 python-mode 插件
同時在 .vimrc 中添加以下語句。
如果有需要,安裝vim時,可以輸入命令 brew info vim 來查看有哪些可安裝的dependencies。例如我的顯示如下圖,可按需求添加安裝指令
⑵ ubuntu vim python 怎麼用
ubuntu下面vim要自己安裝
直接在終端執行sudo apt-get install vim,vim自己要看一下相關的代碼數據
python系統自帶2.7版本,當然你也可以在ubuntu軟體中心安裝3.4版本
⑶ python在vim中怎麼用
Python在vim中怎麼用?
1、安裝Python
2、將安裝路徑,如C:Python34放到Path
3、在Vim中打開文件xxx.py
4、在vim中執行: :!python.exe %
%:標識當前所編輯文件,會被該文件名替換。
更多Python知識,請關註:Python自學網!!
⑷ 如何使 Vim 下開發 Python 調試更方便
我的方法是這樣的:
打開兩個終端,一個直接輸入python 進入python輸入命令行
另外一個輸入vim打開python文件
然後在命令行進行測試,在寫入python文件中,再就是在python文件中多用print 查看哪一步是否和自己預期的不同。
⑸ 如何用 Python 給 Vim 寫插件
vim中執行python命令
在vim中可以使用py[thon] {stmt}來執行python語句{stmt},你可以用:python print "Hello World!"來驗證一下。
只能執行一條語句,沒什麼用,不是嗎?所以有更加強大的介面,語法如下:
py[thon] << {endmarker}
{script}
{endmarker}
<!-- more -->
這樣我們就可以執行python腳本{script}中的內容了。{endmarker}是一個標記符號,可以是任何內容,不過{endmarker}後面不能有任何的空白字元。看一個簡單的例子,假設下面代碼保存為script_demo.vim:
function! Foo()
python << EOF
class Foo_demo:
def __init__(self):
print 'Foo_demo init'
Foo_demo()
EOF
endfunction
那麼在vim中我們先用:source path_to_script/script_demo.vim來載入腳本,然後就可以用:call Foo()來運行python腳本了,整個過程如圖所示:
此外,我們還可以將python腳本放到一個單獨的.py文件中,然後用pyf[ile] {file}來運行python文件中的程序,要注意這里pyf[ile]後面的所有參數被看做是一個文件的名字。
vim模塊
我們已經可以在vim中執行python命令了,但是python怎麼獲取vim中的一些信息呢?比如說我想知道vim當前緩沖區一共有多少行內容,然後獲取最後一行的內容,用python該怎麼做呢?
於是vim提供了一個python模塊,有趣的是模塊名字就叫做vim,我們可以用它來獲取vim編輯器裡面的所有信息。上面問題用以下python腳本就可以解決了:
function! Bar()
python << EOF
import vim
cur_buf = vim.current.buffer
print "Lines: {0}".format(len(cur_buf))
print "Contents: {0}".format(cur_buf[-1])
EOF
endfunction
你可以自己載入腳本運行一下見證奇跡!上面代碼出現了vim.current.buffer,想必你已經從名字猜到了它的意思了,不過還是來詳細看下吧:
vim模塊中的常量
vim.buffers: 用來訪問vim中緩沖區的列表對象,可以進行如下操作:
:py b = vim.buffers[i] # Indexing (read-only)
:py b in vim.buffers # Membership test
:py n = len(vim.buffers) # Number of elements
:py for b in vim.buffers: # Iterating over buffer list
vim.windows: 用來訪問vim中窗口的列表對象,和vim.buffers支持的操作基本相。
vim.current: 用來訪問vim中當前位置的各種信息,比如:
vim.current.line
vim.current.buffer
vim.current.window
vim.current.tabpage
vim.current.range
vim.vvars: 類似字典的對象,用來存儲global(g:)變數或者vim(v:)變數。
還有其他的一些常量,這里不做敘述。注意這里的常量並不是真正意義上的常量,你可以重新給他們賦值。但是我們應該避免這樣做,因為這樣會丟失該常量引用的值。現在為止我們已經能獲取vim中數據,然後用python來對其進行操作,似乎完美了。
不過vim並沒有止步於此,它可是Stronger than Stronger!因為我們可以在python里使用vim強大的命令集,這樣就可以用python寫一些常用的批處理插件,看下面簡單的例子:
function! Del(number)
python << EOF
import vim
num = vim.eval("a:number")
vim.command("normal gg{0}dd".format(num))
vim.command("w")
EOF
endfunction
可以調用上面函數Del(n)用來刪除當前緩沖區前n行的內容(只是示例而已,現實中別這么做!)上面用到了eval和command函數,如下:
vim模塊中兩個主要的方法
vim.command(str): 執行vim中的命令str(ex-mode,命令模式下的命令),返回值為None,比如:
:py vim.command("%s/aaa/bbb/g")
也可以用`vim.command("normal "+str)`來執行normal模式下的命令,比如說用以下命令刪除當前行的內容:
:py vim.command("normal "+'dd')
vim.eval(str): 用vim內部的解釋器來計算str中的內容,返回值可以是字元串、字典、或者列表,比如計算12+12的值:
:py print vim.eval("12+12")
將返回結算結果24。
前面的Del函數還提供了一個number參數,在vimL裡面可以通過let arg=a:number來使用,在python中通過vim.eval("a:number")來使用。也可以通過參數位置來訪問,比如let arg=a:0或者是vim.eval("a:0")。我們可以使用"..."來代替命名參數來定義一個能接收任意數量參數的函數,不過這樣只能通過位置來訪問。
vim模塊還提供了一個異常處理對象vim.error,使用vim模塊時一旦出現錯誤,將會觸發一個vim.error異常,簡單的例子如下:
try:
vim.command("put a")
except vim.error:
# nothing in register a
vim模塊提供的對象
到這里你基本能用python來對緩沖區進行基本的操作,比如刪除行或者是在指定行添加內容等。不過在緩沖區添加內容會很不pythoner,因為你得使用command來調用vim的i/I/a/A命令。好在有更科學的方式,那就是利用vim模塊提供的對象來進行操作,看下面簡單的例子:
function! Append()
python << EOF
import vim
cur_buf = vim.current.buffer
lens = len(cur_buf)
cur_buf.append('" Demo', lens)
EOF
endfunction
Append函數在當前緩沖區的結尾添加註釋內容" Demo,緩沖區對象是怎麼一會兒事呢?
緩沖區對象
vim模塊提供了緩沖區對象來讓我們對緩沖區進行操作,該對象有兩個只讀屬性name和number,name為當前緩沖區文件的名稱(包含絕對路徑),number為緩沖區的數量。還有一個bool屬性valid,用來標識相關緩沖區是否被擦除。
緩沖區對象有以下幾種方法:
b.append(str): 在當前行的下面插入新的行,內容為str;
b.append(str, n): 在第n行的下面插入新的行,內容為str;
b.append(list)
b.append(list, n): 插入多行到緩沖區中;
b.range(s,e): 返回一個range對象表示緩沖區中s到e行的內容。
注意使用append添加新行str時,str中一定不能包含換行符"\n"。str結尾可以有"\n",但會被忽略掉。
緩沖區對象的range方法會返回一個range對象來代表部分的緩沖區內容,那麼range對象又有那些屬性以及方法呢?
其實在操作上range對象和緩沖區對象基本相同,除了range對象的操作均是在指定的區域上。range對象有兩個屬性start和end,分別是range對象的起始和結尾行。它的方法有r.append(str),r.append(str,
n)和r.append(list),r.append(list, n)。
我們可以通過vim.windows來獲取vim中的窗口對象,我們只能通過窗口對象的屬性來對其進行操作,因為它沒有提供方法或者其他介面來操作。其中只讀屬性有buffer、number、tabpage等,讀寫屬性有cursor、height、width、valid等。具體可以查看幫助:h python-window
⑹ 使用vim搭建python開發環境-
最近開始經常需要用vim寫代碼,這里記錄一下自己利用vim搭建基本的python開發環境所使用的插件和一些基本配置
在 ~/.vimrc 文件中,添加如下的信息,完成vim的一些基本配置。
從 GitHub clone Vundle.vim 文件到 ~/.vim/bundle 文件夾下,完成Vundle的安裝。
然後修改 ~/.vimrc 文件,添加如下的信息
若使用 Vundle 安裝 nerdcommenter 插件,需要中 Vim 的配置文件中添加
然後在 Vim 的命令行模式下執行 :BundleInstall 命令完成插件的安裝
nerdcommenter的主要使用方式:
然後在 Vim 的命令行模式下執行 :BundleInstall 命令完成插件的安裝
通過vundle安裝好NERDTree插件後,在vim命令行模式輸入命令:NERDTree就可以看到NERDTree的顯示界面。
使用組合按鍵 Ctrl + w,可將游標自動在左右側窗口進行切換。
如果想要每次啟動vim的時候都默認開啟NERDTree。可以在vimrc文件中添加:
jedi-vim插件依賴python開源庫 「jedi」 ,可以使用pip安裝:
Vim 普通模式下按 F7 便可以直接啟動 flake8 對當前文件進行語法和格式檢查。
以上是我自己用的vim工具配置,如果大家有其他的好用的插件或者配置插件,歡迎一起交流分享呀
⑺ 怎麼使用python-mode VIM
vim只能修改文件,不能編譯。 比方說你可以直接在終端輸入vim Code.py來打開文件並修改之類的。 如果要編譯,就要在終端輸入Python Code.py 那麼他會自行對該文件編譯然後直接運行
⑻ 如何使 Vim 下開發 Python 調試更方便
剛開始用vim寫python的時候,感覺很不方便,於是就用了圖形界面的Pycharm(如果是windows用戶,這個IDE應該是標配),用了一段時間也沒有覺得有什麼不好,不過,腦子里總是會想起《程序員修煉之道》中,那句」最好是精通一種編輯器,並將其用於所有編輯任務。如果不堅持使用一種編輯器,可能會面臨現代的巴別特大混亂。」所以,我又決定用vim來寫python。
在知乎上有很多vim寫python的插件推薦,不過我感覺很多人回答都不動腦子,這些回答主要有兩個問題:
回答不全面,很多人都只是推薦一款插件,然後貼個鏈接就完了,如果要想很爽的用vim寫python,可以肯定的是,一款插件是不夠的
貼上自己的配置,說自己的配置有多爽,然後就不管了。如果是一個vim新手,是用不著這么多配置的,如果是一個vim老手,也不會放棄自己原有的配置,使用別人自定義、認為很爽的個性化配置
所以,這些回答都不是很靠譜。我爭取推薦一些靠譜的東西,那麼,就開始吧!
這個不是插件,而是一個自定義的vim配置。很多時候我們寫python,都是寫一些較為簡單的腳本,那麼,這個一鍵執行的功能就非常實用,我個人感覺最實用的是在寫單元測試的時候,寫完一個單元測試,都不用退出vim,立即執行就能看到結果。
將下面的配置放到.vimrc文件即可:
代碼補全能夠顯著地減少你敲鍵的次數,並且將你從瑣碎的語法中解放出來。說白了,就是幫你寫代碼!
如果使用snipMate插件,那麼,當你輸入ifmain以後按tab鍵,將會自動為你生成下面的代碼:
輸入for,再按tab鍵,生成如下代碼:
代碼補全有兩款插件都比較不錯,可以根據自己的需要進行選擇:
snipMate
xptemplate
syntastic是一款強大的語法檢查插件,當你保存源文件時,它就會執行,並提示用戶哪些代碼存在語法錯誤,哪些代碼風格不符合規范,並給出具體的提示。
例如,python代碼風格默認設置為PEP8,即使你不知道PEP8的風格,只要你使用syntastic插件,並根據它給出的提示修改,那麼,你就能寫出完全符合PEP8風格的代碼!
jedi-vim是基於jedi的自動補全插件,與Syntastic 不同的是,該插件更加智能,更貼切的稱呼是」編程提示」,而不是代碼補全插件。
如下圖所示:
可以說,這個插件是寫vim的標配,並且,真正讓vim寫python變成一件輕松愉快的事情。
注意: 安裝驚jedi-vim插件,需要在電腦中安裝jedi,根據jedi-vim給出的提示,正常按裝即可。不過我之前遇到一個問題,在公司的虛擬機裡面,安裝以後不起作用,google了半天沒有成功,最後更新了一下vim就可以了,希望遇到相同問題的人,能夠看到。
⑼ 如何啟用vim自帶python自動補全功能
這里介紹一下 Python omni complete, 安裝啟用之後,是這個樣子的:
1. 如何安裝 'python omni complete' plugin.
如果是VIM7.3,不需要再下載 pythoncomplete.vim 這個插件,因為安裝時自帶了。
但是, 必須保證編譯安裝 VIM 的時候啟用了 Python 特性, 即
./configure --with-features=huge --enable-pythoninterp=yes
因為,pythoncomplete.vim 是用 python 寫的。
我們可以在vim autoload 目錄下看到
ls -la /usr/local/share/vim/vim73/autoload/
drwxr-xr-x 3 root root 4096 2011-02-16 16:29 .
drwxr-xr-x 17 root root 4096 2011-02-16 16:29 ..
-rw-r--r-- 1 root root 3669 2011-02-16 16:29 adacomplete.vim
-rw-r--r-- 1 root root 22439 2011-02-16 16:29 ada.vim
-rw-r--r-- 1 root root 16938 2011-02-16 16:29 ccomplete.vim
-rw-r--r-- 1 root root 15922 2011-02-16 16:29 csscomplete.vim
-rw-r--r-- 1 root root 2998 2011-02-16 16:29 decada.vim
-rw-r--r-- 1 root root 23804 2011-02-16 16:29 getscript.vim
-rw-r--r-- 1 root root 5331 2011-02-16 16:29 gnat.vim
-rw-r--r-- 1 root root 6093 2011-02-16 16:29 gzip.vim
-rw-r--r-- 1 root root 24253 2011-02-16 16:29 htmlcomplete.vim
-rw-r--r-- 1 root root 27028 2011-02-16 16:29 javascriptcomplete.vim
-rw-r--r-- 1 root root 10130 2011-02-16 16:29 netrwFileHandlers.vim
-rw-r--r-- 1 root root 8684 2011-02-16 16:29 netrwSettings.vim
-rw-r--r-- 1 root root 338720 2011-02-16 16:29 netrw.vim
-rw-r--r-- 1 root root 1232 2011-02-16 16:29 paste.vim
-rw-r--r-- 1 root root 293714 2011-02-16 16:29 phpcomplete.vim
-rw-r--r-- 1 root root 21507 2011-02-16 16:29 python3complete.vim
-rw-r--r-- 1 root root 22019 2011-02-16 16:29 pythoncomplete.vim
-rw-r--r-- 1 root root 773 2011-02-16 16:29 README.txt
-rw-r--r-- 1 root root 23443 2011-02-16 16:29 rubycomplete.vim
-rw-r--r-- 1 root root 6184 2011-02-16 16:29 spellfile.vim
-rw-r--r-- 1 root root 30201 2011-02-16 16:29 sqlcomplete.vim
-rw-r--r-- 1 root root 16839 2011-02-16 16:29 syntaxcomplete.vim
-rw-r--r-- 1 root root 21145 2011-02-16 16:29 tar.vim
-rw-r--r-- 1 root root 12646 2011-02-16 16:29 tohtml.vim
-rw-r--r-- 1 root root 23031 2011-02-16 16:29 vimball.vim
drwxr-xr-x 2 root root 4096 2011-02-16 16:29 xml
-rw-r--r-- 1 root root 14933 2011-02-16 16:29 xmlcomplete.vim
-rw-r--r-- 1 root root 11906 2011-02-16 16:29 zip.vim
如果沒有,則下載 pythoncomplete.vim, 並復制到 ~/.vim/autoload/ 目錄下。
2. 如何啟用自動補全
在 ~/.vimrc 中添加這樣兩行
[plain] view plain
filetype plugin on
autocmd FileType python set omnifunc=pythoncomplete#Complete
此時,我們就完成了安裝及配置工作。
3. 如何使用自動補全
例如我們輸入
[python] view plain
import sys
print sys.
此時, 按下 Ctrl+x, Ctrl+o, 就能看到提示列表框,以及對應的 docstring.
Ctrl+n, Ctrl+p 來上下選擇
ESC 來取消提示框。
4. 不足之處
a. 屬性沒有 docstring, 只有函數有。
:( 這個似乎不好搞,因為屬性似乎沒有 docstring 這個概念。
b. 在沒有下拉框的情況下,沒有 docstring.
好在, pythoncomplete.vim 是 python 寫的,有空大家可以自己完善一下。
⑽ 在windows下怎麼用vim運行python
vim是編輯器,可以直接執行python命令,輸入命令的時候在命令前帶!,英文的感嘆號,這樣就是調用系統命令了。具體參考vim配置其他功能函數時調用命令的寫法(例如調用gcc編譯)