在Cucumber的Gherkin语言中,它允许缩进和行,如下:
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"
我喜欢这种缩进样式比同样缩进的样式更好,但是对于Tim Cucumber scripts for Vim,我必须手动缩进And行并手动删除以下行,有时候Vim会自动缩进行,它最终都错了。
在Vim中使用缩进和线条的最佳方法是什么?或者最容易放弃它?
答案 0 :(得分:2)
我认为您可以自定义indent/cucumber.vim
(在线here)以增加以^\s*And
开头的行的缩进。
答案 1 :(得分:2)
根据Andy的回答,这是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