2011-03-19 44 views
4

在黃瓜的黃瓜語言,它允許縮進和線條,就像這樣:Vim的:黃瓜縮進「和」線

Scenario: 
    Given there is a user named Chris 
    And I am logged in as Chris 
    When I go to the home page 
    Then I should see "hi Chris" 
    And I should not see "log in" 

我喜歡這個縮進風格比同樣縮進式的要好得多,但與蒂姆的​​,我不得不手動縮進和線和手動縮進下面的行,有時Vim會自動縮進線,它結束了所有錯誤。

在Vim中使用縮進和直線工作的最佳方式是什麼?或者放棄它最簡單嗎?

回答

2

我認爲你可以自定義indent/cucumber.vim(在線here)以增加^\s*And開頭的行的縮進。

2

下面是基於安迪的回答爲indent/cucumber.vim一個差異:

--- .vim/indent/cucumber.vim.bak 2011-03-24 18:44:27.000000000 +0100 
+++ .vim/indent/cucumber.vim 2011-03-24 19:09:41.000000000 +0100 
@@ -47,6 +47,10 @@ 
    return indent(prevnonblank(v:lnum-1)) + &sw 
    elseif cline =~# '^\s*[^|# \t]' && line =~# '^\s*|' 
    return indent(prevnonblank(v:lnum-1)) - &sw 
+ elseif cline =~# '^\s*\%(And\|But\)' && line !~# '^\s*\%(And\|But\)' 
+ return indent(prevnonblank(v:lnum-1)) + &sw 
+ elseif cline !~# '^\s*\%(And\|But\)' && line =~# '^\s*\%(And\|But\)' 
+ return indent(prevnonblank(v:lnum-1)) - &sw 
    elseif cline =~# '^\s*$' && line =~# '^\s*|' 
    let in = indent(prevnonblank(v:lnum-1)) 
    return in == indent(v:lnum) ? in : in - &sw