отступ HTML в VIM - PullRequest
       2

отступ HTML в VIM

3 голосов
/ 28 июля 2010

Я не знаю, возможно ли это, но кто-нибудь знает сценарий отступа, который будет поддерживать этот сценарий?

(| это курсор)

данный

<div>|<div>

если я нажму enter, я хочу увидеть

<div>
  |
</div>

вместо

 <div>
|<div>

Ответы [ 3 ]

3 голосов
/ 28 июля 2010

delimitMate позаботится об этом за вас. Однако вам понадобятся две дополнительные настройки ...

добавить пару>: <в список html-файлов: </p>

au FileType html let delimitMate_matchpairs = "(:),[:],{:},>:<"

и скажите, какой шаблон вы хотите добавить после вставки

au FileType html let b:delimitMate_expand_cr = "\<CR>\<CR>\<Up>\<Tab>"

(вместо вставки двух a вставьте два s, нажмите вверх, затем вставьте вкладку)

2 голосов
/ 29 июля 2010

Закончился ответом Брайана Карпера, только слегка изменено

"fancy html indenting
function! NewlineInTag()
    let lnum = getline('.')
    let cnum = col('.')

    let chars = strpart(lnum, cnum - 2, 3)
    if chars =~ '></'
        return "\<CR>\<ESC>\<UP>$o"
    else
        return "\<CR>"
    endif
endfunction

autocmd FileType eruby,html imap <CR> <C-R>=NewlineInTag()<CR>
1 голос
/ 29 июля 2010

Вы можете сделать что-то вроде этого:

function! NewlineInTag()
    let lnum = getline('.')
    let cnum = col('.')

    let chars = strpart(lnum, cnum - 2, 2)
    if chars =~ '><'
        return "\<CR>\<ESC>\<UP>$o"
    else
        return "\<CR>"
    endif
endfunction

imap <CR> <C-R>=NewlineInTag()<CR>
...