При редактировании PHP-кода (я не уверен, что он специфичен для этого языка), и я создаю новую строку в середине разделенных запятыми списков, которые охватывают несколько строк, правила отступов всегда отделяют строку, которую я оставляю. Вот видео. Это происходит в массивах, списках аргументов функций и т. Д.
Есть ли что-нибудь, что я могу сделать, чтобы это не произошло, или какие-либо более быстрые методы исправления ошибки, чем перемещение вверх, повторное отступы, перемещение вниз, повторное отступы (поскольку оно очищается, когда вы покидаете линию) и продолжаете?
.vimrc
Попробуйте :set indentexpr=""
и посмотрите, поможет ли это. Смотрите :help filetype-indent-off
для раздела, который имеет дело с файловыми плагинами (вероятно, именно там, откуда этот indentexpr).
Ваш отступ контролируется скриптом отступа PHP («indty filetype on» в вашем .vimrc). Я использую эти параметры для моего отступа PHP, который вы помещаете в ~/.vim/after/ftplugin
:
setlocal autoindent setlocal cindent setlocal cinwords=if,else,elseif,do,while,foreach,for,case,default,function,class,interface,abstract,private,public,protected,final setlocal cinkeys=0{,0},0),!^F,o,O,e setlocal nosmartindent " don't use smart indent option
В этой теме есть дополнительная информация о вики-странице vim для отступов источника .
Использование «o» в нормальном режиме, похоже, позволяет избежать проблемы. Нажатие <esc>o
из режима вставки не является оптимальным, но это лучше, чем жесткий способ (как описано выше).
Попробуй это:
:let g:PHP_default_indenting=1
См :h php-indent
.
Вы также можете сделать
set cindkeys=-0#
Для символа # char. Если у вас такая же проблема, как у меня с объявлениями css, например
width: 100%
также сдвинувшись влево, вы можете добавить
set cindkeys-=:
Я думаю, cindent
все в порядке, а smartindent
– это то, что вы хотите.
Попробуйте поместить это в ~/.vim/filetype.vim
:
au BufNewFile,BufRead *.html,*.css setlocal nocindent smartindent
вы, вероятно, хотите посмотреть на indentkeys
например, по умолчанию в эти дни:
indentkeys = 0 {, 0},:, 0 #, F ^, о, о, е, *, <>> ,, конец ,:
Найдите свой файл отпечатка php.vim. например /usr/share/vim/vim73/indent/php.vim
Затем найдите следующие строки:
elseif lastline =~ '^\s*?>.*<?\%(php\)\=\s*$' let lnum = lnum - 1
И прокомментируйте их, добавив кавычки, например:
"elseif lastline =~ '^\s*?>.*<?\%(php\)\=\s*$' " let lnum = lnum - 1
Это исправит! Больше не нужно отступать при открытии тегов PHP <?