2012-01-24 64 views
9

我將vim的foldmethod設置爲縮進,除非有註釋行,否則在編寫Python時非常有效。舉例來說,如果我有這段代碼:如何修復vim以正確縮進包含Python註釋行的摺疊?

def myFunction(): 
    # here is my comment 
    myString = "hello" 
    myInt = 2 

如果我有註釋行我的光標,輸入「ZA」我得到得到一個錯誤說「E490:沒有找到折」如果我有與開頭的行光標「的myString =」我會木屐折這樣的:

def myFunction(): 
    # here is my comment 
+--- 2 lines: myString = "hello" ------------------------- 

在這兩種情況下,我想獲得這方面的:

def myFunction(): 
+--- 3 lines: # here is my comment ------------------------- 

基本上註釋行應該像其他任何東西一樣對待。我還沒有拿出網絡搜索的答案。有任何想法嗎?謝謝!

回答

14

你必須設置foldignore爲空。

:set foldignore= 

:help foldignore

'foldignore' 'fdi' string (default: "#") 

    Used only when 'foldmethod' is "indent". Lines starting with 
    characters in 'foldignore' will get their fold level from surrounding 
    lines. White space is skipped before checking for this character. 
    The default "#" works well for C programs. See |fold-indent|. 
3

:help fold-indent

一些行會被忽略,並獲得高於或低於它的線,無論 是最低的摺疊級別。這些是空的或白色的線條和線條,起始於'foldignore'字符 。在'foldignore'中檢查 個字符之前,會跳過空格。對於C使用「#」忽略預處理器行。

至少在我的vim中,01​​被設置爲字符'#'。將其設置爲空,與命令等

:set foldignore= 

到具有包括在摺疊的那些行。