Ответ 1
vimfiles включает интеллектуальный отступ ruby-кода и множество других полезных вещей
код ruby автоматически отформатирован как
class Foo
def bar
if xxx
blah
else
blahblah
end
barfoo
barfoo
end
end
предположим, что у set cindent
в .vimrc
def func()
, затем Enter
, а затем введите end
, он имеет отступ (не выровненный с def
)
Как повторно использовать ключевое слово end
(выровняйте его с def
).
Даже использование endwise.vim plugin
не устраняет проблему
https://github.com/tpope/vim-endwise.git
Он добавляет автоматически ключевое слово end
, но снова indented
vimfiles включает интеллектуальный отступ ruby-кода и множество других полезных вещей
код ruby автоматически отформатирован как
class Foo
def bar
if xxx
blah
else
blahblah
end
barfoo
barfoo
end
end
Попробуйте использовать 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
Это сработало для меня.
" Ruby indentation from http://ubuntuforums.org/showthread.php?t=290462
if has ("autocmd")
filetype indent on
endif
В моем случае это то, что фиксировало мои проблемы с отступом (например, прыжки в случайных местах):
set smartindent
set noautoindent
filetype indent off