Ответ 1
Попробуйте :set indentexpr=""
и посмотрите, поможет ли это. См. :help filetype-indent-off
для раздела, в котором рассматриваются плагины filetype (что, вероятно, происходит от этого indentexpr).
При редактировании PHP-кода (я не уверен, что он специфичен для этого языка), и я создаю новую строку в середине разделенных запятыми списков, которые охватывают несколько строк, правила отступа всегда отделяют строку, которую я оставляю, Здесь это видео. Это происходит в массивах, списках аргументов функций и т.д.
Есть ли что-нибудь, что я могу сделать, чтобы это не произошло, или какие-либо более быстрые методы исправления ошибки, чем перемещение вверх, повторное отступы, перемещение вниз, повторное отступы (поскольку оно очищается, когда вы покидаете линию) и продолжаете?
Попробуйте :set indentexpr=""
и посмотрите, поможет ли это. См. :help filetype-indent-off
для раздела, в котором рассматриваются плагины filetype (что, вероятно, происходит от этого indentexpr).
Ваш отступ управляется отступением PHP script ( "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 wiki-страница для отступов источника.
Использование "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 ^, о, о, е, *, < → , конец,!
Найдите файл indent php.vim. например /usr/share/vim/vim 73/indent/php.vim
Затем найдите следующие строки:
elseif lastline =~ '^\s*?>.*<?\%(php\)\=\s*$'
let lnum = lnum - 1
И прокомментируйте их, добавив кавычки, например:
"elseif lastline =~ '^\s*?>.*<?\%(php\)\=\s*$'
" let lnum = lnum - 1
Это исправит! Больше не нужно отступать при открытии PHP-тегов <?