【问题标题】:Haskell and Vim: Proper IndentationHaskell 和 Vim:正确的缩进
【发布时间】:2011-12-24 00:49:59
【问题描述】:

在 SO 上搜索“vim haskell indent”。关于如何为 Haskell 缩进配置 Vim 有很多答案。他们都没有真正“工作”。他们不提供Haskell indentation wiki page 推荐的代码。例如,do 或 let 块中的语句对齐、数据类型的=| 等。

是否存在生成类似于 wiki 的代码的 Vim 解决方案?

【问题讨论】:

    标签: haskell indentation


    【解决方案1】:

    这可能不是您正在寻找的答案,但有一种方法可以让您遵循缩进 wiki 指南并与大多数编辑器兼容。

    例如,do-blocks

    代替

    myFunc x = do y <- bar
                  return $ x + y
    

    你可以这样缩进

    myFunx x = do
        y <- bar
        return $ x + y
    

    这在缩进 wiki 中被明确提及为可接受的替代方案。

    同样可以格式化数据类型

    data FooBar
        = Foo
        | Bar
        | Asdf
    

    守卫

    myFunc x
        | x < 0     = 0
        | otherwise = x
    

    Where 子句

    myFunc x = x + y + c where
        y = x + 5
        c = x * y
    

    等等……

    我个人开始使用这种样式,因为就像你说的那样,没有编辑器可以可靠地缩进代码。这在所有编辑器中效果更好,因为缩进总是四的倍数(或者您为基本缩进级别选择的任何其他内容)。当我使用这种风格时,我也开始在视觉上更喜欢这种一致的缩进级别,所以即使编辑器变得更聪明,我也不会回到这一点。

    【讨论】:

    • 尚,在这一点上,我怀疑每个使用 vim 的人都会接受这种妥协。很长一段时间以来,我一直在做这个的变体。
    • 这不一定是妥协。除了where 版本,这是我的眼睛更喜欢的风格(并且,一直以来都有细微的变化)。
    猜你喜欢
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 2010-11-30
    • 2018-11-25
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多