在Vim中格式化Ruby代码

时间:2010-09-24 09:08:13

标签: ruby vim code-formatting

此刻转移到Vim。在TextMate中,我可以通过点击 Cmd - Alt - [来格式化代码。我如何在Vim中实现同样的目标?


请参阅以下答案以获取该命令。我发现我在.vimrc中也需要以下内容,以便Vim知道如何自动提交Ruby。

if has("autocmd")
  filetype indent on
endif

7 个答案:

答案 0 :(得分:40)

Vimcasts对此主题有a useful screencast您可能感兴趣

gg=G

gg => go to start of file
=  => apply autoformatting
G  => ... to the end of file

答案 1 :(得分:15)

当我看到有关Vim和重新格式化和重新定位的问题时,我通常会感到困惑。但这很容易。

使用 = 键完成的重新定义是一个在不插入任何行结束的情况下移动行不对齐的过程 - 没有硬包装。简单地说,所选行的起始列可以更改,但内容不能。

另一方面,重新格式化是完全重写所选代码。简单地说,根据Vim中定义的语言规则删除所有内容并重新编写。很简单,呵呵?

重新注册的通常模式是转到文件的开头( g g ),更改为行选择( V ) ,转到文件末尾( G )并执行重新排序( = )。

在vim中缩进 g g V G =

重新格式化模式以相同的键开头( g g V G ),但不是等于键,而是 g q - 重新格式化Vim命令。

在vim 格式格式 g <克 q

这在每个Vim实例中都是开箱即用的,即使是纯文本也是如此。只有当Vim不理解编程语言时,才需要为它提供正确的格式化规则(通常是一堆必须转到.vim目录结构的.vim文件)。

重新格式化Ruby仅在安装了插件vim-ruby时才有效。

我不得不发布这个on my blog ;-) Vim不是很酷吗?它是。

答案 2 :(得分:3)

尝试:

gg=G

在正常模式下。

答案 3 :(得分:2)

如果您正在寻找的不仅仅是缩进,请查看ruby-beautify。 它可以通过vim-autoformat与vim集成。

答案 4 :(得分:0)

ggVGgq将根据当前文件类型重新格式化整个文件

答案 5 :(得分:0)

我发布了一个VIM插件,可以为Ruby文件做更全面的格式化。除了缩进之外,它还可以删除尾随空格,并始终将方法声明空出:

vim-autoformat-rails

答案 6 :(得分:0)

对于小缩进,请尝试:  =}=)