Плохое форматирование рубинового кода в Vim - PullRequest
2 голосов
/ 23 августа 2011

Когда я форматирую файл PHP в vim, это нормально, но когда я форматирую файл Ruby, код формата VIM плохой.

Например:

class PostsController < ApplicationController

                skip_before_filter :authorize, :only => [ :index, :show ]

  def index
        @posts = Post.all
     end

  def show
    @post = Post.find(:first, :conditions => [ "id = ?", params[:id]], :include => [ :user, :category, :gallery ])
                  @photos = Photo.where(:gallery_id => @post.gallery.id).all
      end
   end

Когда я ввожу команду gg = G , я получаю.

class PostsController < ApplicationController

skip_before_filter :authorize, :only => [ :index, :show ]

def index
@posts = Post.all
end

def show
@post = Post.find(:first, :conditions => [ "id = ?", params[:id]], :include => [ :user, :category, :gallery ])
@photos = Photo.where(:gallery_id => @post.gallery.id).all
end
end

Пожалуйста, помогите мне.

Ответы [ 3 ]

4 голосов
/ 23 августа 2011

Для работы Ruby Indenting необходимо предоставить конфигурацию отступов. Сам Vim не может делать отступ для кода Ruby, вы можете установить переменную indentexpr для какого-то подобного языка (например, базового), но вы не будете довольны результатами. Проверьте переменные smartindent и indentexpr:

:set si?
:set indentexpr?

В моем случае они установлены:

nosmartindent
indentexpr=GetRubyIndent()

Лучший способ настроить vim для ruby ​​- использовать плагин vim-ruby: https://github.com/vim-ruby/vim-ruby

0 голосов
/ 13 июня 2015

Я не уверен, есть ли у меня какие-либо плагины Vim, потому что я использую его на работе (и он уже был установлен). Однако, для чего это стоит, вот некоторые из моих .vimrc файлов.

syntax enable             " Enable syntax highlighting
syntax on
set expandtab             " Use spaces instead of tabs
set shiftwidth=2          " 1 tab == 4 spaces
set tabstop=2             " 1 tab == 4 spaces

Я на самом деле set smartindent закомментировал в файле. [1]

Если вы хотите заменить любой символ табуляции пробелами (установите выше .vimrc), я предлагаю следующую команду в вашем рабочем файле: set :retab [2]

0 голосов
/ 12 июня 2015

Существует более общий плагин форматирования, который называется vim-autoformat .Среди прочего, он включает rbeautify , чтобы обеспечить более сильное форматирование, чем просто исправление отступов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...