当我在vim中格式化PHP文件时没关系,但是当我格式化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
请帮帮我。
答案 0 :(得分:4)
要使Ruby缩进工作,您需要提供缩进配置。 Vim本身无法缩进Ruby代码,你可以将indentexpr变量设置为某种类似的语言(比如basic),但是你对结果不满意。检查你的smartindent和indentexpr变量:
:set si?
:set indentexpr?
在我的情况下,他们已经设定:
nosmartindent
indentexpr=GetRubyIndent()
为ruby配置vim的最佳方法是使用vim-ruby插件:https://github.com/vim-ruby/vim-ruby
答案 1 :(得分:0)
存在一个更通用的格式化插件,称为vim-autoformat。 除此之外,它集成rbeautify以提供更强大的格式,而不仅仅是修复缩进。
答案 2 :(得分:0)
我不确定我是否有任何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]