我正在学习Vim,需要做以下事情: 假设我键入了这个:
class MyClass
private
end
输入gg=G
后,我希望private
保持在类声明的级别,如下所示:
class MyClass
private
end
但它看起来不对(缩进向右移动private
):
class MyClass
private
end
如何添加自定义私有自定义规则?
答案 0 :(得分:2)
正如已经提到的评论,vim使用建议的缩进: https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected
但是,如果您想要更改它,可以设置自定义indentexpr
autocmd FileType ruby setlocal indentexpr=YourCustomFunction()
然而,编写这样的功能将会有很多工作。最好使用你的vim已经使用的理智功能,并将其保留给官方推荐。
P.S。 Rubocop没有反对它,你得到的错误可能是指一个无用的private
语句,因为之后没有任何函数。
答案 1 :(得分:1)
如果您希望将访问修饰符保持在类声明的级别,您可以通过将其置于.vimrc
中来让Vim尊重它:
let g:ruby_indent_access_modifier_style = 'outdent'
这是来自Vim的ruby支持,vim-ruby(documentation)的配置设置。
请注意,这仅适用于最新的Vim版本。我不太确定哪个,但是,如果它对您不起作用,请手动安装vim-ruby插件,就像普通的插件一样 - 这样就可以让您访问最新的插件运行时文件,包括这个设置(这可能是一个混合的祝福,目前在heredoc突出显示方面有些奇怪)。