當前位置:首頁 » 編程語言 » vim插件python

vim插件python

發布時間: 2022-06-18 20:16:13

『壹』 想用vim寫python3,有什麼好用的插件推薦

vim可以同時支持Python和python3. 現在所有的插件調用python的時候,執行的判斷是has(python''). 問題的沖突在於同時支持python,和python3的時候是動態調用的(可以用vim

『貳』 如何安裝vim-python插件

用戶自己的插件放在 ~/.vim/ftplugin 下面,插件的文件名應當是 <文件類型.vim>. 針對同一個文件類型有很多插件的, 可以在上述目錄下建立子目錄 (和文件類型一致), 例如建立 ~/.vim/ftplugi/tex 目錄,然後把有關 tex 和 latex 的插件都放在這個目錄中,這時候子目錄下的文件名可以隨便取,只要以 .vim 為後綴即可.
系統級的插件放在 /usr/local/share/vim/vim74/ftplugin 下面 (這是你自己編譯安裝的 vim,而且是配置在 /usr/local 中,系統自帶的 vim 則放在 /usr/share/vim/vim74/ftplugin 下面,這裏的 74 是 vim 的版本號 7.4 的縮寫,其他版本類似)。

『叄』 如何用vim打造python開發環境

由於有的Vim插件使用了Python(比如等會我們要用到的python-mode),我們的Vim必須支持Python。如果您跟我一樣從來都是從Vim官網的下載頁下載Vim的話,這個官方編譯版本已經附帶了Python支持,只是這個Vim是32位的。

『肆』 如何使 Vim 下開發 Python 調試更方便

1. 一鍵執行

這個不是插件,而是一個自定義的vim配置。很多時候我們寫python,都是寫一些較為簡單的腳本,那麼,這個一鍵執行的功能就非常實用,我個人感覺最實用的是在寫單元測試的時候,寫完一個單元測試,都不用退出vim,立即執行就能看到結果。
將下面的配置放到.vimrc文件即可:

""""""""""""""""""""""
"Quickly Run
""""""""""""""""""""""
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!time java %<"
elseif &filetype == 'sh'
:!time bash %
elseif &filetype == 'python'
exec "!time python2.7 %"
elseif &filetype == 'html'
exec "!firefox % &"
elseif &filetype == 'go'
" exec "!go build %<"
exec "!time go run %"
elseif &filetype == 'mkd'
exec "!~/.vim/markdown.pl % > %.html &"
exec "!firefox %.html &"
endif
endfunc

2. 代碼補全(snipMate)

代碼補全能夠顯著地減少你敲鍵的次數,並且將你從瑣碎的語法中解放出來。說白了,就是幫你寫代碼!

如果使用snipMate插件,那麼,當你輸入ifmain以後按tab鍵,將會自動為你生成下面的代碼:

if __name__ == '__main__':
main()

輸入for,再按tab鍵,生成如下代碼:

for needle in haystack:
# code...

代碼補全有兩款插件都比較不錯,可以根據自己的需要進行選擇:
snipMate
xptemplate
3. 語法檢查(Syntastic)

syntastic是一款強大的語法檢查插件,當你保存源文件時,它就會執行,並提示用戶哪些代碼存在語法錯誤,哪些代碼風格不符合規范,並給出具體的提示。
例如,python代碼風格默認設置為PEP8,即使你不知道PEP8的風格,只要你使用syntastic插件,並根據它給出的提示修改,那麼,你就能寫出完全符合PEP8風格的代碼!

4. 編程提示(jedi-vim)

jedi-vim是基於jedi的自動補全插件,與Syntastic 不同的是,該插件更加智能,更貼切的稱呼是」編程提示」,而不是代碼補全插件。

如下圖所示:

可以說,這個插件是寫vim的標配,並且,真正讓vim寫python變成一件輕松愉快的事情。
注意: 安裝驚jedi-vim插件,需要在電腦中安裝jedi,根據jedi-vim給出的提示,正常按裝即可。不過我之前遇到一個問題,在公司的虛擬機裡面,安裝以後不起作用,google了半天沒有成功,最後更新了一下vim就可以了,希望遇到相同問題的人,能夠看到。

『伍』 適合python的vim插件,有哪些是必備的

vim有各種強大的插件,這不僅歸功於其提供的用來編寫插件的腳本語言vimL,還得益於它良好的介面實現,從而支持python等語言編寫插件。
當vim編譯時帶有+python特性時就能使用python2.x編寫插件,+python3則支持python3.x,可以使用vim --version.

『陸』 如何用 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

『柒』 python在vim中怎麼用

Python在vim中怎麼用?
1、安裝Python
2、將安裝路徑,如C:Python34放到Path
3、在Vim中打開文件xxx.py
4、在vim中執行: :!python.exe %
%:標識當前所編輯文件,會被該文件名替換。
更多Python知識,請關註:Python自學網!!

『捌』 怎樣用vim自動補全python

Pydiction 可以是我們使用Tab鍵自動補全Python代碼在Vim,是一款非常不錯的插件。

Pydiction不需要安裝,所有沒有任何依賴包問題,Pydiction主要包含三個文件。

1
2
3
python_pydiction.vim -- Vim plugin that autocompletes Python code.
complete-dict -- Dictionary file of Python keywords, moles, etc.
pydiction.py -- Python script to add more words to complete-dict.
下載Pydiction

1
2
3
4
5
mkdir ~/.vim
mkidr ~/.vim/bundle
cd ~/.vim/bundle
#這里我們也可以自己下載好上傳linux系統中
git clone https://github.com/rkulla/pydiction.git
配置Pydiction

1
2
3
4
#- UNIX/LINUX/OSX: Put python_pydiction.vim in ~/.vim/after/ftplugin/
#- WINDOWS: Put python_pydiction.vim in C:\vim\vimfiles\ftplugin\
# Assuming you installed Vim to C:\vim\
cp -r ~/.vim/bundle/pydiction/after/ ~/.vim
新建.vimrc文件

1
vim ~/.vimrc
在.vimrc文件添加如下配置:

1
2
3
filetype plugin on
let g:pydiction_location = '~/.vim/tools/pydiction/complete-dict'
let g:pydiction_menu_height = 3
到此已經可以使用Tab鍵自動補全python代碼了。

『玖』 如何啟用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 在CODE上查看代碼片派生到我的代碼片
import sys
print sys.
此時, 按下 Ctrl+x, Ctrl+o, 就能看到提示列表框,以及對應的 docstring.
Ctrl+n, Ctrl+p 來上下選擇
ESC 來取消提示框。
4. 不足之處
a. 屬性沒有 docstring, 只有函數有。
:( 這個似乎不好搞,因為屬性似乎沒有 docstring 這個概念。
b. 在沒有下拉框的情況下,沒有 docstring.
好在, pythoncomplete.vim 是 python 寫的,有空大家可以自己完善一下。

『拾』 vim 用什麼安裝python的庫

如未安裝vim,使用下面命令安裝:

[python] view plain
sudo apt-get install vim

在用戶目錄下創建.vim目錄,其下創建bundle目錄:

[python] view plain
mkdir .vim\bundle

安裝Bundle/Vundle:

[python] view plain
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

創建或編輯用戶目錄下的.vimrc文件,添加如下內容:

[python] view plain
set nocompatible
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'

" The bundles you install will be listed here
Bundle 'scrooloose/nerdtree'
Bundle 'davidhalter/jedi-vim'

filetype plugin indent on

" The rest of your config follows here.

augroup vimrc_autocmds
autocmd!
" highlight characters past column 120
autocmd FileType python highlight Excess ctermbg=DarkGrey guibg=Black
autocmd FileType python match Excess /\%120v.*/
autocmd FileType python set nowrap
augroup END

" NerdTree Shortcut.
map <f2> :NERDTreeToggle<cr>

" automatically change window』s cwd to file』s dir
set autochdir

" Prefer spaces to tabs
set tabstop=4
set shiftwidth=4
set expandtab
set nu!

打開vim,鍵入命令「:BundleInstall」,等待自動安裝插件完成(下面顯示「done」)

在vim中鍵入命令「:BundleList」可以查看安裝的插件。

熱點內容
php查詢結果數組 發布:2025-02-06 12:31:05 瀏覽:714
怎樣把照片壓縮打包 發布:2025-02-06 12:15:19 瀏覽:496
如何編譯java文件 發布:2025-02-06 12:05:58 瀏覽:237
九九乘法編程 發布:2025-02-06 12:05:05 瀏覽:519
台式機忘記開機密碼怎麼辦 發布:2025-02-06 11:58:01 瀏覽:871
android刷新按鈕 發布:2025-02-06 11:57:17 瀏覽:586
存儲過程有輸入參數和輸出參數 發布:2025-02-06 11:55:32 瀏覽:99
成績評選演算法 發布:2025-02-06 11:42:51 瀏覽:997
資料庫測試數據 發布:2025-02-06 11:31:05 瀏覽:824
球頭軸編程 發布:2025-02-06 11:29:36 瀏覽:283