Авто-отступы с C в vim?

Я был несколько испорчен с помощью Eclipse и java. Я начал использовать vim для кодирования C в среде linux, есть ли способ, чтобы vim автоматически выполнял правильное расстояние для блоков?

Итак, после ввода {следующая строка будет иметь 2 пробела с отступом, а возврат на этой строке будет содержать один и тот же отступ, а a} сдвинет назад 2 пробела?

Ответ 1

Эти две команды должны это сделать:

:set autoindent
:set cindent

Бонусные очки помещают их в файл с именем .vimrc, расположенный в вашем домашнем каталоге на linux

Ответ 2

I написал все о вкладках в vim, что дает несколько интересных вещей, о которых вы не спрашивали. Для автоматической фиксации отступа используйте:

:set cindent

Чтобы отложить два пробела (вместо одной вкладки из восьми пробелов, по умолчанию vim):

:set shiftwidth=2

Чтобы vim не конвертировал восемь пробелов в вкладки:

:set expandtab

Если вы хотите изменить отступ в блоке текста, используйте < и > . Обычно я использую это в сочетании с режимом выбора блока (v, выберите блок текста, < или > ).

(Я попытался бы поговорить с вами о двухпозиционном отступе, так как мне (и большинству других) трудно читать, но это еще одно обсуждение.)

Ответ 3

Многие функции vim (например, autoindent и cindent) по умолчанию отключены. Чтобы действительно увидеть, что VIM может сделать для вас, вам нужен приличный ~/.vimrc.

Хороший стартовый находится в $VIMRUNTIME/vimrc_example.vim. Если вы хотите попробовать, используйте

:source $VIMRUNTIME/vimrc_example.vim

когда в vim.

Я бы предложил просто скопировать содержимое на ваш ~/.vimrc, как он хорошо комментировался, и хорошее место, чтобы начать изучать, как использовать vim. Вы можете сделать это с помощью

:e $VIMRUNTIME/vimrc_example.vim
:w! ~/.vimrc

Это перезапишет ваш текущий ~/.vimrc, но если все, что у вас есть, есть настройки отступа, предложенные Давром, я бы не потел, так как пример vimrc позаботится об этом и для вас. Для полного прохода примера и того, что он делает для вас, см. :help vimrc-intro.

Ответ 4

Просто запустите:

[email protected]:~ $ echo set autoindent >> .vimrc

Ответ 5

Я думаю, что лучший ответ на самом деле объясняется на vim wikia:

http://vim.wikia.com/wiki/Indenting_source_code

Обратите внимание, что он советует не использовать "set autoindent". Лучшая особенность всего, что я нахожу в этом объяснении, - это возможность установки параметров для каждого файла, что особенно полезно, если вы программируете на python и С++, например, так как вам нужно 4 пробела для вкладок в первом и 2 для пробелы в последнем.

Ответ 7

Try:

set sw = 2

установить ts = 2

установить smartindent