Автоматические отступы с C в vim?
Я был несколько испорчен с помощью Eclipse и java. Я начал использовать vim для кодирования C в среде linux, есть ли способ, чтобы vim автоматически делал правильный интервал для блоков?
Итак, после ввода a { следующая строка будет иметь отступ 2 пробела, и возврат на эту строку будет держать ее в том же отступе, а a } сдвинет назад 2 пробела?
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
.
Я думаю, что лучший ответ на самом деле объясняется на vim wikia:
http://vim.wikia.com/wiki/Indenting_source_code
обратите внимание, что он советует не использовать "set autoindent."Лучшая особенность всего, что я нахожу в этом объяснении,-это возможность устанавливать настройки для каждого файла, что особенно полезно, если вы программируете на python и C++, например, так как вы хотите 4 пробела для вкладок в первом и 2 для пробелов во втором.