微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Vim中按括号列索引缩进代码?

我正在使用Vim来编辑Erlang代码.我习惯(大多数Erlang程序员这样做)通过它们所在的括号范围缩进Erlang代码.例如,C通常在大括号内缩进一个制表符宽度:

int main(void) {
    printf("hello,world\n");
    return 0;
}

在Erlang中,基于括号开始的列缩进是很常见的:

?assertError({bad_options,[{foo,bar},bad_option]},lhttpc:request("http://localhost/",get,[],<<>>,1000,[bad_option,{foo,bar}])).

(上面的例子是缩进的,以获得重点,而不是根据主观美).

如果块在新行上启动,则将使用制表符宽度:

?assertError(
    {bad_options,lhttpc:request(
         "http://localhost/",bar}]
    )
).

我的.vimrc的相关部分:

set expandtab " Spaces for tabs "
set tabstop=4 " Tab width 4 "
set shiftwidth=4
set smarttab
set autoindent

" Enable filetype plugin "
filetype plugin on
filetype indent on

有没有办法在Vim中执行此缩进,如果是,如何?

解决方法

一个vimerl的fork实现了“上下文感知缩进”而不是“静态缩进”: https://github.com/aszlig/vimerl.git

似乎工作,所以我会推迟一段时间.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐