У меня есть код C, с ⇦
, указывающий на символ, где находится курсор Vim, и ·
с указанием ведущего пространства.Vim 'expandtab' листья ведущие пробелы
int main()
{⇦
····return 0;
}
я в настоящее время 'expandtab' включен, и я нажимаю 'O', что дает:
int main()
{
····⇦
····return 0;
}
Я нажмите 'Enter' ключ один раз, и теперь у меня есть:
int main()
{
····
····⇦
····return 0;
}
I нажмите 'Enter' ключ еще раз, и написать какой-нибудь текст, давая:
int main()
{
····
····// bla bla bla⇦
····return 0;
}
Как заставить Vim не помещать этот ведущий отступ в первой строке после {
? Он достаточно умен, чтобы удалить ведущие пробелы на последующих пустые строки.
Если я повторно нажимаю файл с gg=G
, это дополнительное пространство будет удалено. Но этого не должно быть, в первую очередь, из того, что я понимаю.
Кроме того, если у меня нет «expandtabs», все работает нормально. Другими словами, если я делаю то же самое, что и выше, с «noexpandtabs», никакого лишнего отступа не осталось.
Есть ли где-нибудь установить это? Это ошибка?
Моя версия: VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr 5 2012 10:17:30)
Обновление: больше информации
Я могу воспроизвести это с довольно 'ванилью' набором настроек, например, путем вызова Vim с : vim -u /etc/vimrc foo.c
, а затем в сеансе set expandtab
и set cindent
. Я также попробовал «установить autoindent», который, похоже, не помогает в этом конкретном случае.
Параметры ci
, si
и ai
отключены.
Я работаю на CentOS 6.4, для справки.
Благодаря
Такое поведение может быть очень плагин зависит. Я не смог воспроизвести вашу проблему с установкой Fedora и Gentoo Vim. –
@matthiaskrull Какие версии Vim были такими? – jwd
pls сообщают о выходе этих команд: 'set ci?' 'Set si?' И 'set ai?' – Kent