如何使用表格对齐Rails路由文件?

时间:2014-12-06 16:33:48

标签: ruby-on-rails regex vim

我想从这个Rails路由文件中对齐此片段:

Rails.application.routes.draw do
  get 'about' => 'static_pages#about'
  get 'help' => 'static_pages#help'
  get 'contact' => 'static_pages#contact'
  get 'signup' => 'users#new'
  get 'login' => 'sessions#new'
  post 'login' => 'sessions#create'
  delete 'logout' => 'sessions#destroy'
end

对此:

Rails.application.routes.draw do
  get    'about'   => 'static_pages#about'
  get    'help'    => 'static_pages#help'
  get    'contact' => 'static_pages#contact'
  get    'signup'  => 'users#new'
  get    'login'   => 'sessions#new'
  post   'login'   => 'sessions#create'
  delete 'logout'  => 'sessions#destroy'
end

使用vim的tabular插件。

我一直在尝试各种各样的正则表达但似乎无法指出它。 :Tabularize/'[^=]*\|=.*/l1l0只会破坏文本。

我能找到的最近的资源是这个问题:
Tabular.vim : how to align on the first occurrence of 2 different delimiters placed at the beginning of Words?

2 个答案:

答案 0 :(得分:1)

使用以下内容:

:Tabularize/'[^']*'\|=>/l1l0

这个想法是使用字符串和哈希火箭作为分隔符。

我建议您阅读所有:h tabular

虽然我没有累vim-easy-align,但我听说它比Tabular更容易对齐。可能值得一试。

答案 1 :(得分:0)

我不记得你是如何用Tabular做的,但是:

:%!column -t|sed 's/  \([^ ]\)/ \1/g'

或:

:%!column -t<CR>
:%s/  \([^ ]\)/ \1/g<CR>