7

В некоторых текстовых редакторах (например, Kate, gedit), когда включен автоматический отступ, двойное нажатие клавиши возврата оставит завершающий пробел (который я хочу):

if (code) {
....
....|
}

В то время как другие обслуживают стандарт кодирования, где конечные пробелы (даже в пустых строках) не допускаются:

if (code) {

....|
}

Что меня раздражает в этом, так это то, что если я стрелка вверх после авто-отступа, авто-отступ теряется:

if (code) {
|
....
}

Если я запускаю vim и :set autoindent , я получаю последнее поведение.

У меня вопрос: как мне настроить vim, чтобы сохранить конечные пробелы, а не автоматически удалять их, если они не используются?

3 ответа3

3

Посмотрите эту подсказку на вики-сайте vim чтобы узнать, как сделать правильный отступ даже для пустых строк. Если вы просто хотите сохранить предыдущий отступ (игнорируя, какой vim рассчитан как правильный отступ), используйте let ind = indent(prevnonblank(v:lnum - 1)) как описано в комментарии к той же записи вики.

1

Я нашел это решение для меня:

:inoremap <Return> <Space><BS><Return>
0

По моему .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>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .