Как сделать так, чтобы в vim autoindent не пропускались конечные пробелы?
В некоторых текстовых редакторах (например, Kate, gedit), когда включен автоматический отступ, двойное нажатие клавиши возврата приведет к появлению завершающего пробела (который я хочу):
if (code) {
....
....|
}
В то время как другие обслуживают стандарт кодирования, где конечные пробелы (даже в пустых строках) не допускаются:
if (code) {
....|
}
Что меня раздражает в этом, так это то, что если я стрелка вверх после авто-отступа, авто-отступ теряется:
if (code) {
|
....
}
Если я запускаю VIM и :set autoindent
Я получаю последнее поведение.
Мой вопрос: как настроить vim, чтобы сохранить конечные пробелы, а не автоматически удалять их, если они не используются?
3 ответа
Смотрите этот совет на vim
Вики о том, как сделать правильный отступ даже для пустых строк. Если вы просто хотите сохранить предыдущий отступ (игнорируя vim
рассчитывается как правильный отступ) использовать let ind = indent(prevnonblank(v:lnum - 1))
как объяснено в комментарии под той же вики.
Я нашел это решение для меня:
:inoremap <Return> <Space><BS><Return>
По моему.vimrc:
" Change a blank line upon creation so that its leading spaces won't be removed
inoremap <Return> <Return><Space><BS>
nnoremap o o<Space><BS>
nnoremap O O<Space><BS>