2011-06-28 64 views
2

我正在努力解決如何讓Vim遵循比大多數編輯器默認允許的更復雜的縮進方案。基本上我想使用製表符縮進,但空間來對齊跨越多行的語句。例如:Vim縮進和對齊:結合空格和製表符

private static $_columns = array('id' => 'id', 
            'email' => 'email', 
            'passwordHash' => 'password_hash', 
            'salt' => 'salt'); 
    ^tabs up to here 
            ^spaces up to here 

這裏的想法是,壓痕如下誰正在編輯的文件的標籤寬度的偏好,而多行語句仍然正確對齊。

我想實現這個的簡單方法是讓Vim只要複製上一行(即前導空格)使用的縮進模式,每當輸入新行時。有沒有辦法在Vim中做到這一點?我需要寫一個插件嗎?

+0

爲什麼不模式行? :-) – sidyll

+0

@sidyll:不太整潔,需要更多努力!儘管如此,我以前從來沒有玩過模特兒,所以我會去試驗 - 謝謝! –

+0

我同意。我只是建議它,因爲在某些情況下,當你知道*接收器將在Vim中讀取文件時,一個簡單的'vim:ts = 4'可以很好地工作。 – sidyll

回答

5

有專用於該專題的維基條目:Indent with tabs, align with spaces

建議的解決方案是使用一個插件:「Smart Tabs

+0

與問題匹配不錯 – sehe

+1

這看起來就像我想要的東西,但它似乎並不奏效。我已經把它放在我的Pathogen'bundle'目錄中,但是如果我將上面的代碼片段添加到上面並添加一行,它只是按正常方式使用製表符,並用空格填充它們。我錯過了什麼嗎? –

+0

@ Will Vousden:我自己並沒有使用這個插件,所以我不能對它進行評論。你期望的功能缺失了嗎? –

相關問題