在Vim中格式化Ruby代码

hmmo2u0o  于 12个月前  发布在  Ruby
关注(0)|答案(8)|浏览(137)

我现在就去找Vim在TextMate中,我可以通过点击Cmd-Alt-[来格式化代码。如何在Vim中实现同样的功能?
请参阅下面的命令的答案。我发现在我的.vimrc中还需要以下内容,以便Vim知道如何自动编译Ruby。

if has("autocmd")
  filetype indent on
endif
vh0rcniy

vh0rcniy1#

Vimcasts有关于这个主题的a useful screencast,你可能会感兴趣

gg=G

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

w80xi6nr2#

当我看到关于Vim和重新格式化和重新缩进的问题时,我通常会感到困惑。但这很容易。
重新缩进,用=键完成,是一个不插入任何线端的移动线缩进的过程-没有硬 Package 。简单地说,所选行的开始列可以更改,但内容不能更改。
另一方面,重新格式化是对选定代码段的完全重写。简单地说,所有内容都被删除,然后根据Vim中定义的语言规则重新编写。很简单,哈?
通常的重标识模式是转到文件的开头(gg),改为行选择(V),转到文件的结尾(G)并执行重标识(=)。
这是indenting in Vim:ggVG=

Reformingpattern以相同的键(ggVG)开始,但不是相等键,而是执行gq - reformat Vim命令。

这是Vim中的格式:ggVGgq
这在每个Vim示例中都可以开箱即用,即使是纯文本。只有当Vim不理解编程语言时,您才需要为其提供正确的格式规则(通常是一堆必须转到.vim目录结构的.vim文件)。
只有在安装了vim-ruby插件的情况下,重新格式化Ruby才有效。
我不得不出版这个on my blog;- )Vim很酷吧?是的

mfuanj7w

mfuanj7w3#

试试看:

gg=G

在正常模式下。

rks48beu

rks48beu4#

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

rkkpypqq

rkkpypqq5#

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

iyr7buue

iyr7buue6#

我发布了一个Vim插件,它将为Ruby文件做一些更全面的格式化。除了缩进之外,它还做了一些事情,比如删除尾随的空格,并一致地将方法声明分隔开:
vim-autoformat-rails

dffbzjpn

dffbzjpn7#

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

lc8prwob

lc8prwob8#

有人说道。但我在这里分享。这样其他人就能很容易地找到它

ggVG=

相关问题