Автоматическое выделение пробелов с помощью C в vim?
-
01-07-2019 - |
Вопрос
Я был несколько избалован использованием Eclipse и java.Я начал использовать vim для кодирования на C в среде Linux, есть ли способ заставить vim автоматически устанавливать правильные интервалы между блоками?
Итак, после ввода a { в следующей строке будет 2 пробела с отступом, и возврат к этой строке сохранит ее с тем же отступом, а a } сдвинет обратно на 2 пробела?
Решение
Эти две команды должны это сделать:
: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
Обратите внимание, что он не рекомендует использовать "установить автоиндексацию". Лучшая функция из всех, которые я нахожу в этом объяснении, - это возможность устанавливать параметры для каждого файла, что особенно полезно, если вы программируете, например, на python и C ++, поскольку вам понадобятся 4 пробела для табуляции в первом и 2 для пробела во втором.
и всегда помните это почтенное объяснение пробелов и табуляции:
Попробуй:
установите sw=2
установите ts=2
установить smartindent