Автоматическое выделение пробелов с помощью C в vim?

StackOverflow https://stackoverflow.com/questions/97694

  •  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 для пробела во втором.

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

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

Попробуй:

установите sw=2

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

установить smartindent

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top