2012-07-25 9 views
11

とGG = Gを使用して書式設定:Vimは私が正しくフォーマットされたxmlファイルを持っており、ここでの答えとして与えられたコマンドを次のXML

How can I autoformat/indent C code in vim?

私は正しいネストを表示するには、自動インデントに私のファイルをしようとしています。

私はまた:set nowrapを、私は.mmの拡張子を持って開始したファイルとして:set ft=xml を使用してXMLにファイルタイプを設定し、このコマンドを使用してみました前に。

syntax on 
set history=1000 
set smartindent 
set tabstop=2 
set shiftwidth=2 
set expandtab 

私はgg=Gを発行するとき、どのように来る、私は54 lines indentedを言ってメッセージを取得し、まだ私のファイルがun-ネストされたまま:ここ

は私の〜/ファイル.vimrcのですか?

+1

[xmllint](http://xmlsoft.org/xmllint.html)--formatを試したことがありますか? – ephemient

+0

いいえ、私は本当にこの時点でフォーマットされたファイルを持っている必要はありません。私はこのコマンドがvimで期待していることをしていない理由を探しています。しかし、提案をありがとう。 – grimetime

答えて

19

...

:filetype indent on   (load indent files for specific file types etc.) 
:e       (to reload the current buffer) 

これは$ VIMRUNTIME /インデント/ XMLでvimscriptをロードします

:(1、LNUM v)を使用すると、

:set indentexpr?   

を行う際

をて.vimそして...それはindentexpr = XmlIndentGetを言いますよ

~~

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

なぜxmllintが優れていると感じるのか不思議です。私の経験では、Vimの組み込みXMLインデント_only_が先頭の空白を予想どおりにインデントするのに対して、空白の改行やコメントを削除することは、過度に積極的です。 私はtpopeの[vim-sensible](https://github.com/tpope/vim-ensensible)を採用するまで、Vimの組み込みXMLフォーマッタをまったく動作させるのに苦労しました。デフォルトでは、vimの等号(=)演算子を含むすべてが "今働いています"。 http://stackoverflow.com/a/28365920/1207769も参照してください。 – ctrueden

5

:set equalprg?を試してみてください。 equalprg=と表示されている場合は、xmlインデント用にプログラムが設定されていないことを意味します。ここにあなたのフォーマッタとしてxmllintを設定するためのガイドです:http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.htmlあなたはあなたができる、Vimの独自のXMLの圧子の事を試してみたい場合は

+0

ありがとう!それは素晴らしい仕事でした。私は[Derek Wyattのvim Screencasts](http://vimeo.com/15443936)の1つを見ていて、vimがxmlをそれ自身の中に入れ子にする方法を知っていたと仮定しました。 – grimetime

+2

フォーマッタとしてのxmllintの設定に関するガイドを参考にしてください。 XMLを書式設定することは、非常にパーソナライズされたものになる可能性があります。たとえば、すべての状況ですべてのタグをインデントしたくない場合や、長いtext()ノードに対してテキストの折り返しが必要な場合があります。したがって、xmllintの代わりに[xmlformat](http://www.kitebird.com/software/xmlformat/)を使用することもできます。 – darcyparker

関連する問題