Я хотел бы сделать отступ в VIM с вкладками, кроме конкретного случая. Например, у меня есть этот код C ++ (где <tab>
это серия символов табуляции и <s>
это серия символов пространства):
<tab>if(true &&
<tab><s>true)
<tab>{
<tab><tab>//code here
<tab>}
Я хотел бы после написания&&’и нажмите’ o ‘, чтобы перейти на следующую строку и начать писать, чтобы vim поставил табуляцию и количество пробелов до’ (‘в предыдущей строке.
Можно ли определить этот стиль кодирования в vim?
Спасибо!
Я думаю, что вы ищете (N
вариант для cinoptions
, Пытаться set cinoptions+=(0
, Согласно документации, это выглядит как выравнивание, которое вы ищете.
Дополнительную информацию можно найти с помощью команды справки: :help cinoptions-values
или глядя на онлайн-версию помощь для cinoptions-значений.
Что касается вкладок, вы хотите отключить expandtab
с :set noexpandtab
, и вы хотите убедиться, что ваши закладки, программные вкладки и широта настроены соответственно. Например, исходный код Linux использует стиль, подобный тому, который вы упомянули выше, и у меня есть это в моем vimrc:
setlocal ts=8 sts=8 sw=8 tw=80
" Don't expand tabs to spaces.
setlocal noexpandtab
" Enable automatic C program indenting.
setlocal cindent
" Don't outdent function return types.
setlocal cinoptions+=t0
" No extra indentation for case labels.
setlocal cinoptions+=:0
" No extra indentation for "public", "protected", "private" labels.
setlocal cinoptions+=g0
" Line up function args.
setlocal cinoptions+=(0
" Setup formatoptions:
" c - auto-wrap comments to textwidth.
" r - automatically insert comment leader when pressing <Enter>.
" o - automatically insert comment leader after 'o' or 'O'.
" q - allow formatting of comments with 'gq'.
" l - long lines are not broken in insert mode.
" n - recognize numbered lists.
" t - autowrap using textwidth,
setlocal formatoptions=croqlnt
Добавьте следующее в ваш .vimrc
set tabstop=2
set expandtab
set shiftwidth=2
set smarttab
set linebreak
set smartindent
set cindent
set autoindent
Это все, что вам нужно, чтобы развернуть удивительность в VIM. 🙂