PrettyXML (Vim), Stardew Valley aliases (Ubuntu)
This commit is contained in:
@@ -231,3 +231,34 @@ autocmd Filetype tex inoremap <localleader>tx $t(x)$
|
||||
" }}} tex "
|
||||
|
||||
" }}} Local Mappings "
|
||||
|
||||
" format XML {{{
|
||||
function! DoPrettyXML()
|
||||
" save the filetype so we can restore it later
|
||||
let l:origft = &ft
|
||||
set ft=
|
||||
" delete the xml header if it exists. This will
|
||||
" permit us to surround the document with fake tags
|
||||
" without creating invalid xml.
|
||||
1s/<?xml .*?>//e
|
||||
" insert fake tags around the entire document.
|
||||
" This will permit us to pretty-format excerpts of
|
||||
" XML that may contain multiple top-level elements.
|
||||
0put ='<PrettyXML>'
|
||||
$put ='</PrettyXML>'
|
||||
silent %!xmllint --format -
|
||||
" xmllint will insert an <?xml?> header. it's easy enough to delete
|
||||
" if you don't want it.
|
||||
" delete the fake tags
|
||||
2d
|
||||
$d
|
||||
" restore the 'normal' indentation, which is one extra level
|
||||
" too deep due to the extra tags we wrapped around the document.
|
||||
silent %<
|
||||
" back to home
|
||||
1
|
||||
" restore the filetype
|
||||
exe "set ft=" . l:origft
|
||||
endfunction
|
||||
command! PrettyXML call DoPrettyXML()
|
||||
" }}}
|
||||
|
||||
Reference in New Issue
Block a user