如何在 Vim 中缩进 Ruby 和 Rails 代码?

发布于 2024-11-03 00:50:32 字数 417 浏览 0 评论 0原文

我只是想知道是否可以在 Vim 中自动缩进 Rails 代码,而不是这样

validates :email, :presence => true,
  :format => { :with => email_regex },
  :uniqueness => { :case_sensitive => false }

validates :email, :presence   => true,
                  :format     => { :with => email_regex },
                  :uniqueness => { :case_sensitive => false }

I just wonder if it´s possible to auto indent Rails Code in Vim instead of this:

validates :email, :presence => true,
  :format => { :with => email_regex },
  :uniqueness => { :case_sensitive => false }

to this:

validates :email, :presence   => true,
                  :format     => { :with => email_regex },
                  :uniqueness => { :case_sensitive => false }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

耳根太软 2024-11-10 00:50:32

做到这一点的最佳方法实际上并不是使用 Vim 中的内置对齐方式,而是使用

例如,1,3Align => 将在 => 上对齐。您可以使用AlignCtrl函数获得非常详细的排序等信息,但其功能范围可能会留给其文档。 <代码>:)

The best way to do this is not actually to use built-in alignment in Vim, but rather the Align Plugin by Dr. Chip, which is used to horizontally align arbitrary symbols in vertical columns.

1,3Align => will align on the =>, for example. You can get extremely detailed with the ordering etc by using the AlignCtrl function, but the extent of its functionality is likely left to its documentation. :)

纸伞微斜 2024-11-10 00:50:32

感谢您的回答。

如果有人也需要这个,在 Tabular 中,它适用于:

:Tabularize /^[^:]*\zs:/r1c0l0
:Tabularize /^[^=>]*\zs=>/l1

如果你想在你的函数中使用它vimrc:

function IndentV()
  Tabularize /^[^:]*\zs:/r1c0l0
  Tabularize /^[^=>]*\zs=>/l1
endfunction
map <Leader>iv :call IndentV()<cr>

因此,您只需在可视模式下选择文本,然后按 \iv 即可实现此目的。

Thanks for the answers.

If anyone needs this too, in Tabular this works with:

:Tabularize /^[^:]*\zs:/r1c0l0
:Tabularize /^[^=>]*\zs=>/l1

If you want to use this in a function in your vimrc:

function IndentV()
  Tabularize /^[^:]*\zs:/r1c0l0
  Tabularize /^[^=>]*\zs=>/l1
endfunction
map <Leader>iv :call IndentV()<cr>

So you just select text in visual mode an press \iv to make this happen.

記憶穿過時間隧道 2024-11-10 00:50:32

我同时使用 对齐表格 插件。

Align 有一些很好的预构建对齐方式,而 Tabular 允许您设计一个用于匹配字段的正则表达式。我发现自己最近更多地使用 Tabular,但您的情况可能会有所不同。

I use both the Align and Tabular plugins.

Align has some nice pre-built alignments, whereas Tabular allows you to design a regex that will be used to match the fields. I find myself using Tabular more these days, but your mileage might vary.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文