Автоматические отступы с C в vim?


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

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

7 80

7 ответов:

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

:set autoindent
:set cindent

для получения бонусных баллов поместите их в файл с именем .vimrc находится в вашем домашнем каталоге на linux

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

:set cindent

для отступа двух пробелов (вместо одной вкладки из восьми пробелов, Vim по умолчанию):

:set shiftwidth=2

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

:set expandtab

Если вы когда-нибудь захотите изменить отступ блока текста, используйте . Я обычно использую это в сочетании с режимом выбора блока (v, выделите блок текста, ).

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

многие функции 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, но если все, что у вас есть, - это настройки отступа, предложенные Davr, я бы не потел, так как пример vimrc позаботится об этом и для вас. Для полного пошагового руководства примера и того, что он делает для вас, см. :help vimrc-intro.

просто наберите:

user@host:~ $ echo set autoindent >> .vimrc

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

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

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

и всегда помните это почтенное объяснение пробелов + табуляции:

http://www.jwz.org/doc/tabs-vs-spaces.html

попробуй:

set sw=2

set ts=2

набор smartindent