2014-01-12 60 views

回答

17

的問題是,你的設置是由一個插件這是覆蓋Vim的一部分。問題是在ftplugin/python.vim

" As suggested by PEP8. 
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 

蟒蛇插件嘗試設置你的源代碼是PEP8兼容默認情況下,所以它的調整製表位。你會想要一些這些插件所提供的,但是你可能需要設置你自己的自動命令來修復你不喜歡的任何東西。

有兩種方法可以做到這一點。如果你有一個~/.vim文件夾,最簡單的方法是添加文件~/.vim/after/ftplugin/python.vim

" Here, you can set the setting directly, or call a command or function 
" to help you. We'll call a command, and then implement that command in 
" your top-level vimrc to help keep things in one place. 
SetupPython 

在你.vimrc,添加:

function! SetupPython() 
    " Here, you can have the final say on what is set. So 
    " fixup any settings you don't like. 
    setlocal softtabstop=2 
    setlocal tabstop=2 
    setlocal shiftwidth=2 
endfunction 
command! -bar SetupPython call SetupPython() 

後者位只允許你調用該函數爲SetupPython,而在後文件中比call SetupPython()

另一種方法是將所有內容保存在.vimrc中,但是使用VimEnter自動命令爲python設置FileType自動命令以設置您的首選項。通過等待直到VimEnter被觸發,其他所有的插件都將有足夠的時間來建立自己的自動命令,這樣你的將被添加到列表的末尾。這允許你在python插件的FileType自動命令之後運行並設置你自己的設置。這是有點亂的,雖然,上面的after/機構是這樣做的優選方式。

FWIW,我保留在SetupSource()函數中的許多常見設置可以從多個不同的FileType s中調用。然後我會有SetupPython()致電SetupSource()。這有助於保持特定功能的清潔並減少一些重複。如果有幫助,看看功能在我這裏vimfiles:https://github.com/jszakmeister/vimfiles/blob/master/vimrc#L5328

+0

我會推薦使用setlocal而不是set爲ftplugins。 – FDinoff

+2

注意python.vim'的'最新版本,您可以通過設置來關閉PEP-8風格: '讓G:python_recommended_style = 0'。 另見:https://github.com/sullyj3/vim-ftplugin-python/blob/73bf4ed079b50f6c7259f81e02b6cca42fdc4ca3/python.vim#L59 – Maarten

1

重寫設置

這可能是因爲這些設置是由特定語言的設置覆蓋。有關更多信息,請參見http://vim.wikia.com/wiki/Keep_your_vimrc_file_clean

快速的入門方法是從你的.vimrc文件裏將所有的特定語言的東西到一個命名的.vim /文件類型插件/ language.vim(或$ HOME/vimfiles文件Windows上的/ftplugin/language.vim)。

檢查這些位置是否爲python特定的.vim文件。

文件類型上

Vundle似乎需要filetype off,我不知道你是否應該重新打開它。 Vundle的github issues page上有一個線索,解釋了爲什麼需要filetype on。也許這將提供一些見解。

我也認爲有filetype plugin indent on其次是filetype on是重新編號。按照vim help docs,前者變成檢測,插件和縮進,並在後者的旋轉檢測和葉插件和縮進不變:

Overview:     *:filetype-overview* 

command      detection  plugin   indent 

:filetype on    on    unchanged  unchanged 
:filetype off    off    unchanged  unchanged 
:filetype plugin on   on    on    unchanged 
:filetype plugin off  unchanged  off    unchanged 
:filetype indent on   on    unchanged  on 
:filetype indent off  unchanged  unchanged  off 
:filetype plugin indent on on    on    on 
:filetype plugin indent off unchanged  off    off 
+0

繼承人我的vimrc:http://pastebin.com/tGmfCi78。我真的沒有任何朗特定的東西。任何想法什麼是錯的? –

+0

通常編輯問題以包含.vimrc的內容會更好。 – Jon

+0

好的!謝謝 –

相關問題