Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Vim中缩进Ruby和Rails代码?_Ruby On Rails_Ruby_Vim_Indentation - Fatal编程技术网

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

Ruby on rails 如何在Vim中缩进Ruby和Rails代码?,ruby-on-rails,ruby,vim,indentation,Ruby On Rails,Ruby,Vim,Indentation,我只是想知道是否有可能在Vim中自动缩进Rails代码,而不是这样: validates :email, :presence => true, :format => { :with => email_regex }, :uniqueness => { :case_sensitive => false } 为此: validates :email, :presence => true, :format =

我只是想知道是否有可能在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 }

最好的方法不是在Vim中使用内置对齐,而是使用Dr.Chip,它用于水平对齐垂直列中的任意符号

例如,
1,3Align=>
将在
=>
上对齐。通过使用
AlignCtrl
函数,您可以获得极其详细的订购等信息,但其功能范围可能由其文档决定<代码>:)

我同时使用和插件


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

谢谢您的回答

如果有人也需要此功能,请在此过程中配合:

:Tabularize /^[^:]*\zs:/r1c0l0
:Tabularize /^[^=>]*\zs=>/l1
如果您想在vimrc中的函数中使用此选项:

function IndentV()
  Tabularize /^[^:]*\zs:/r1c0l0
  Tabularize /^[^=>]*\zs=>/l1
endfunction
map <Leader>iv :call IndentV()<cr>
函数IndentV()
制表/^[^::*\zs:/r1c0l0
制表/^[^=>]*\zs=>/l1
端功能
映射四:调用IndentV()

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

谢谢@sleepynate我发现它可以与以下命令一起工作:
:AlignCtrl-Wlp0P1::Align::AlignCtrl-Wlp1P1::Align=>