我有一个格式正确的xml文件,并按照这里给出的答案命令:
How can I autoformat/indent C code in vim?
我正在尝试自动缩进文件以显示正确的嵌套。
在我尝试使用此命令之前,我使用:set ft=xml
将文件类型设置为xml
因为我开始使用的文件的扩展名为.mm
,还有:set nowrap
。
这是我的〜/ .vimrc文件:
syntax on
set history=1000
set smartindent
set tabstop=2
set shiftwidth=2
set expandtab
当我发出gg=G
时,我收到一条消息54 lines indented
,但我的文件仍未嵌套?
答案 0 :(得分:19)
如果你想尝试Vim自己的XML压头,你可以......
:filetype indent on (load indent files for specific file types etc.)
:e (to reload the current buffer)
这会将vimscript加载到$ VIMRUNTIME / indent / xml.vim
然后当你做
:set indentexpr?
......它会说indentexpr = XmlIndentGet(v:lnum,1)
~~
xmllint虽然更好,但请参阅...... http://vim.wikia.com/wiki/VimTip349
我在.vimrc中有这样的方便键绑定!
" one or more lines:
vmap ,px !xmllint --format -<CR>
" pretty-print current line
nmap ,px !!xmllint --format -<CR>
答案 1 :(得分:6)
尝试输入::set equalprg?
。如果它显示equalprg=
,则表示您没有为xml缩进设置程序,因此它可能正在进行一些哑默认操作。以下是将xmllint设置为格式化程序的指南:http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html