предположим, что у set cindent
в .vimrc
def func()
, затем Enter
, а затем введите end
, он имеет отступ (не выровненный с def
)
Как повторно использовать ключевое слово end
(выровняйте его с def
).
Даже использование endwise.vim plugin
не устраняет проблему
https://github.com/tpope/vim-endwise.git
Он добавляет автоматически ключевое слово end
, но снова indented
Как исправить исходный код Ruby Ruby в Vim
Ответ 1
vimfiles включает интеллектуальный отступ ruby-кода и множество других полезных вещей
код ruby автоматически отформатирован как
class Foo
def bar
if xxx
blah
else
blahblah
end
barfoo
barfoo
end
end
Ответ 2
Попробуйте использовать smartindent
вместо cindent
(который следует за поведением типа C-like) и включите специфический отступ типа filetype.
Вам также, вероятно, придется отключить совместимость vi.
Попробуйте добавить это к вам .vimrc:
" Turn off vi compatibility
set nocompatible
set smartindent
set autoindent
" load indent file for the current filetype
filetype indent on
Ответ 3
Это сработало для меня.
" Ruby indentation from http://ubuntuforums.org/showthread.php?t=290462
if has ("autocmd")
filetype indent on
endif
Ответ 4
В моем случае это то, что фиксировало мои проблемы с отступом (например, прыжки в случайных местах):
set smartindent
set noautoindent
filetype indent off