首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合使用gg=G和xml进行Vim格式化

结合使用gg=G和xml进行Vim格式化
EN

Stack Overflow用户
提问于 2012-07-26 01:35:05
回答 2查看 12.9K关注 0票数 11

我有一个格式正确的xml文件,并按照下面的命令回答:

How can I autoformat/indent C code in vim?

我正在尝试自动缩进我的文件以显示正确的嵌套。

在尝试使用此命令之前,我使用:set ft=xml将文件类型设置为xml,因为我开始使用的文件的扩展名为.mm,并且扩展名为:set nowrap

下面是我的~/.vimrc文件:

代码语言:javascript
复制
syntax on
set history=1000
set smartindent
set tabstop=2
set shiftwidth=2
set expandtab

为什么当我发出gg=G命令时,我收到一条消息说54 lines indented,而我的文件仍然是未嵌套的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-26 09:14:01

如果您想尝试Vim自己的XML缩进功能,您可以...

代码语言:javascript
复制
:filetype indent on         (load indent files for specific file types etc.)
:e                          (to reload the current buffer)

这将加载位于$VIMRUNTIME/indent/xml.vim的vimscript

然后当你这样做的时候

代码语言:javascript
复制
:set indentexpr?        

...它将显示indentexpr=XmlIndentGet(v:lnum,1)

~~

不过,xmllint更好,请看...http://vim.wikia.com/wiki/VimTip349

在我的.vimrc中,我有像这样的方便的键盘绑定!

代码语言:javascript
复制
" one or more lines:
vmap ,px !xmllint --format -<CR>

" pretty-print current line
nmap ,px !!xmllint --format -<CR>
票数 20
EN

Stack Overflow用户

发布于 2012-07-26 02:02:24

尝试输入::set equalprg?。如果它显示为equalprg=,这意味着您没有为可扩展标示语言缩进设置程序,所以它可能正在执行一些愚蠢的默认操作。下面是将xmllint设置为您的格式化程序的指南:http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11655383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档