13

假设我有set cindentin ,.vimrc
def func()然后Enter键入end,它是缩进的(不与 对齐def

如何重新缩进end关键字(将其与 对齐def)。

即使使用endwise.vim plugin也不能解决问题
https://github.com/tpope/vim-endwise.git
它会自动添加end关键字但又indented

4

4 回答 4

23

尝试使用smartindent而不是cindent(遵循类似 C 的缩进行为),并打开文件类型特定的缩进。

您可能还需要关闭 vi 兼容性。

尝试将其添加到您的 .vimrc:

" Turn off vi compatibility
set nocompatible

set smartindent
set autoindent

" load indent file for the current filetype
filetype indent on
于 2011-12-16T18:46:40.340 回答
1

vimfiles包含 ruby​​ 代码智能缩进和许多其他有用的东西

ruby 代码会自动格式化为

class Foo
  def bar
    if xxx
      blah
    else
      blahblah
    end
    barfoo
    barfoo
  end
end
于 2011-12-16T16:15:43.787 回答
0

这对我有用。

" Ruby indentation from http://ubuntuforums.org/showthread.php?t=290462
if has ("autocmd")
    filetype indent on
endif
于 2013-05-24T04:18:12.980 回答
0

就我而言,这就是解决我的缩进问题的原因(例如在随机位置跳转):

set smartindent
set noautoindent
filetype indent off
于 2017-03-04T01:04:05.513 回答