2009-08-13 104 views
1

smartindent =%特徵我喜歡cindent,smartindent和=%特徵在vim,其適當地縮進的代碼。 但是,我有一個問題,它使用8個空格縮進一切,如果我有幾個嵌套ifs,它可以像這裏很長的行,雖然嵌套ifs如此之多是另一個問題。 cindent,在vim

4 int main() 
    5 { 
    6   if(x) 
    7   { 
    8     if(u) 
    9     { 
10       if(y) 
11       { 
12       } 
13     } 
14   } 
15 } 

我試圖設置TS = 1,它仍然不工作。

有沒有什麼辦法讓默認縮進級別爲4個空格,而使用這些功能?

編輯 組SW = 4解決了這個問題。難怪VIM總是讓我吃驚:)

+0

如果你有這麼多的嵌套IFS,這可能是因爲你正在做的事情錯了,測試正常情況下? http://stackoverflow.com/questions/114342/what-are-code-smells-what-is-the-best-way-to-correct-them/223881#223881 – hlovdal 2009-08-13 02:17:52

+0

@hlovdal:不,我不這麼多IFS ,我只想通過減少空間使它看起來很好:) – 2009-08-13 02:18:44

回答

7

我相信你正在尋找shiftwidth,縮寫爲sw

編輯:從文件一對夫婦報價:

  • shiftwidth:用於(自動)縮進每一步的空格數。用於|'cindent'|,| >> |,| < < |等

  • tabstop:文件中<Tab>所佔空間的數量。

  • expandtab:在插入模式下:使用適當數量的空格插入<Tab>。 '''和'<'命令用於縮進,'autoindent'開啓時使用空格。

  • smarttab:啓用時,行前的<Tab>會根據'shiftwidth'插入空白。 'tabstop'在其他地方使用。

根據你的風格,你可能不得不改變其中的一種以上。看看他們的幫助條目,如果你需要更多的澄清!

+0

sw如何適用於>>,<<。我試過如果(1 << 3)和cout <<「var」;它不給任何空間,我錯過了什麼? – 2009-08-13 02:21:33

+0

在正常(或可視)模式下使用時,不是在插入模式下輸入時使用'>>。它縮進當前行。 – 2009-08-13 02:24:15

+0

請注意,您可以使用數字前綴'<<' and '>>'來縮進多次,但只能在可視模式下使用。在正常模式下,該數字指定要縮進的行數。 – Cascabel 2009-08-13 02:28:26

1

嘗試設置shiftwidthsw)至4

而且,如果你想使用的,而不是製表符空格,set expandtabet)。然後,您可以將所有這些選項卡更改爲:retab