Vim-Ruby多线压痕法

Vim-Ruby多线压痕法,ruby,vim,indentation,Ruby,Vim,Indentation,我对vim设置中的默认换行符表示异议。我认为我使用的唯一相关插件是vim ruby 我想要这样自动缩进的代码: let(:account) do create :account, store: build(:live_store, shop_version: build(:shop_version, name: "Example"

我对vim设置中的默认换行符表示异议。我认为我使用的唯一相关插件是vim ruby

我想要这样自动缩进的代码:

let(:account) do
  create :account,
    store: build(:live_store,
                 shop_version: build(:shop_version,
                                      name: "Example"
                                     )
                )
end
let(:account) do
  create :account,
    store: build(:live_store,
      shop_version: build(:shop_version,
        name: "Example"
      )
    )
end
要改为像这样自动缩进:

let(:account) do
  create :account,
    store: build(:live_store,
                 shop_version: build(:shop_version,
                                      name: "Example"
                                     )
                )
end
let(:account) do
  create :account,
    store: build(:live_store,
      shop_version: build(:shop_version,
        name: "Example"
      )
    )
end
这有意义吗?还是我在杂草丛中?我发现默认设置非常难看,尤其是在试图强制执行80个字符的行时,它令人沮丧


谢谢大家!

我找到了一个合理的解决办法。如果我在代码中使用散列文字,Vim将以我想要的方式自动缩进。例如,像这样键入上面的示例很好:

let(:account) do
  create :account,
    store: build(:live_store, {
      shop_version: build(:shop_version, {
        name: "Example"
      })
    })
end

这似乎是一个合理的折衷办法。

我找到了一个合理的解决办法。如果我在代码中使用散列文字,Vim将以我想要的方式自动缩进。例如,像这样键入上面的示例很好:

let(:account) do
  create :account,
    store: build(:live_store, {
      shop_version: build(:shop_version, {
        name: "Example"
      })
    })
end

这看起来是一个合理的折衷方案。

vim ruby如此深入地缩进示例的原因是为了支持这种编码风格:

让(:账户)做
创建:帐户,
存储:构建(:live\u存储,
车间版本:构建(:车间版本,
名称:“示例”))
结束
很多人喜欢这种“挂起”样式,这就是为什么如果在同一行中使用第一个参数的圆括号,vim ruby就会缩进。正如@Amadan指出的,您可以将所有参数放在新行上:

让(:账户)做
创建:帐户,
商店:建立(
:现场商店,
商店版本:构建(
:商店版,
名称:“示例”
)
)
结束
或者,我首选的受支持缩进样式使用花括号:

让(:账户)做
创建:帐户,
存储:构建(:live\u存储{
车间版本:构建(:车间版本{
名称:“示例”
})
})
结束

缩进首选项有很多不同的组合,我们在支持多大的可变性方面受到限制(我是一名维护人员)——代码很旧,充满了边缘案例。恐怕这三种风格基本上都是正确的,我希望您可以调整您的编码风格以达成妥协。也许在将来的某个时候,我会坐下来尝试一些根本性的改变,但这是一个很难找到时间和精力的项目。

vim ruby如此深入地缩进您的示例的原因是为了支持这种编码风格:

让(:账户)做
创建:帐户,
存储:构建(:live\u存储,
车间版本:构建(:车间版本,
名称:“示例”))
结束
很多人喜欢这种“挂起”样式,这就是为什么如果在同一行中使用第一个参数的圆括号,vim ruby就会缩进。正如@Amadan指出的,您可以将所有参数放在新行上:

让(:账户)做
创建:帐户,
商店:建立(
:现场商店,
商店版本:构建(
:商店版,
名称:“示例”
)
)
结束
或者,我首选的受支持缩进样式使用花括号:

让(:账户)做
创建:帐户,
存储:构建(:live\u存储{
车间版本:构建(:车间版本{
名称:“示例”
})
})
结束

缩进首选项有很多不同的组合,我们在支持多大的可变性方面受到限制(我是一名维护人员)——代码很旧,充满了边缘案例。恐怕这三种风格基本上都是正确的,我希望您可以调整您的编码风格以达成妥协。也许在将来的某个时候,我会坐下来尝试一些彻底的改变,但这是一个很难找到时间和精力的项目。

@Anthony也许我误解了这个问题。如果当前缩进与第一个示例完全不同,那么第二种形式是大多数编辑器使用有效的Ruby缩进器应该做的。如果将
:live\u store,
:shop\u version,
移到新行,默认缩进将更有意义。@Anthony也许我误解了这个问题。如果当前缩进与第一个示例完全不同,则第二种形式是大多数编辑器应该使用有效的Ruby缩进器进行的操作。如果将
:live\u store,
:shop\u version,
移动到新行,则默认缩进将更有意义。