繁体   English   中英

在Vim中格式化Ruby代码

[英]Format Ruby code in Vim

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


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

if has("autocmd")
  filetype indent on
endif

Vimcasts一个关于这个主题的有用的截屏视频 ,你可能会感兴趣

gg=G

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

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

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

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

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

那是在vim中缩进g g V G =

重新格式化模式以相同的键( g g V G )开始,但不是使用相同的键,而是执行g q - 重新格式化Vim命令。

这是vim中格式g g V G g q

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

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

我不得不在我的博客上发布这个;-) Vim不是很酷吗? 它是。

尝试:

gg=G

在正常模式下。

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

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

VIM-自动套用格式护栏

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM