2013-11-01 12 views
0

每當我想使用的MacVim使用行繼續在我的Python腳本,我收到以下格式:macVim:python中的續行創建不必要的選項卡?

a = one,\ 
     two,\ 
     three 

代替:

a = one,\ 
    two,\ 
    three 

我已經通過help搶奪,無法找到究竟是什麼導致macVim在使用續行時追加額外的選項卡。

注:目前,我有我的.vimrc文件中:

set tabstop=4 
set shiftwidth=4 
set expandtab 
set softtabstop=4 
+0

'vim-python-pep8'插件在做符合PEP8的縮進方面相當不錯,但我不確定這個具體情況。 – Marius

回答

1

您的設置幾乎沒有問題。在Python代碼,標籤設置應該始終

:set tabstop=8 shiftwidth=4 softtabstop=4 expandtab 

這些設置被稱爲PEP 8「樣式指南Python代碼」在榮譽的建議,並得到普遍遵循的Python代碼。堅持這些設置,甚至更好,設置一個自動命令來自動設置它們。在你的vimrc中:

autocmd FileType python setlocal ts=8 sw=4 sts=4 et 

現在解決你的問題:這是由Vim的Python縮進腳本中的默認縮進規則引起的。幸運的是,這些規則可以定製。在你的情況下,你只需要在你的vimrc中放入以下行。

let g:pyindent_continue = '&shiftwidth' 

(在Vim中的較新版本,使用'shiftwidth()'代替'&shiftwidth'。)

欲瞭解更多信息,請查閱:h ft-python-indent

2

你有你的標籤設置爲4,而不是2

請確保您有

filetype plugin indent on 

你也可以使用你的.vimrc中的後續內容作爲默認的代碼,而不是在單獨的行上添加它們。

使用2而不是4

set ts=2 sts=2 sw=2 noexpandtab 
+0

它的工作!謝謝先生。這個問題是什麼? –

+0

這對於Python來說是非常糟糕的建議。 [PEP 8](http://www.python.org/dev/peps/pep-0008)建議使用四個空格縮進,並且在Python代碼中普遍遵循此建議。 – glts

相關問題