supponiamo di avere set cindent
in .vimrc
def func()
seguito da Enter
, quindi digitare end
, si è rientrato (non allineato al def
)
Come reindent la parola chiave end
(allinearlo allo def
).
Anche usando endwise.vim plugin
non risolve il problema
https://github.com/tpope/vim-endwise.git
Aggiunge automaticamente la parola end
ma ancora una volta indented
Come autoindent Rubino codice sorgente in Vim
risposta
vimfiles include codice Ruby intelligente rientro e un sacco di altre cose utili
rubino il codice viene formattato automaticamente come
class Foo
def bar
if xxx
blah
else
blahblah
end
barfoo
barfoo
end
end
Provare a utilizzare smartindent
anziché cindent
(che segue il comportamento del rientro simile a C) e attivare il rientro specifico del tipo di file.
Probabilmente avrete anche bisogno di disattivare la compatibilità di vi.
Prova ad aggiungere questo a voi Vimrc:
" Turn off vi compatibility
set nocompatible
set smartindent
set autoindent
" load indent file for the current filetype
filetype indent on
Ottengo indentazione ma è errato in base al tipo di file? Per i file di ruby ottengo un'indentazione di tabulazione enorme, mentre dovrei ottenere solo 2 spazi? –
E per disabilitare 'set nosmartindent',' set noautoindent', 'retetype indent off' – Dorian
questo ha funzionato per me.
" Ruby indentation from http://ubuntuforums.org/showthread.php?t=290462
if has ("autocmd")
filetype indent on
endif
Nel mio caso questo è ciò che risolto i miei problemi di rientro (ad esempio salti in luoghi casuali):
set smartindent
set noautoindent
filetype indent off
Quello che ha funzionato per me stava installando 'vim-pathogen'
https://github.com /tpope/vim-pathogen.git – user815693