Подтвердить что ты не робот

Как исправить исходный код Ruby Ruby в Vim

предположим, что у set cindent в .vimrc

def func(), затем Enter, а затем введите end, он имеет отступ (не выровненный с def)

Как повторно использовать ключевое слово end (выровняйте его с def).

Даже использование endwise.vim plugin не устраняет проблему
https://github.com/tpope/vim-endwise.git
Он добавляет автоматически ключевое слово end, но снова indented

4b9b3361

Ответ 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