11

私は正しくフォーマットされたxmlファイルを持っており、ここで答えとして与えられたコマンドに従います:

vimでCコードを自動フォーマット/インデントするにはどうすればよいですか?

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

このコマンドを使用する前に、最初に使用:set ft=xml したファイルの拡張子が。.mmであるため、ファイルタイプをxmlに設定しました:set nowrap

これが私の〜/.vimrcファイルです:

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

発行すると、「ファイルがネストされていないgg=G」というメッセージが表示されるのはなぜですか?54 lines indented

4

2 に答える 2

20

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>
于 2012-07-26T01:14:00.900 に答える
6

次のように入力してみてください:set equalprg?equalprg=それがxmlインデント用に設定されたプログラムを持っていないことを意味する場合、それはおそらくいくつかのばかげたデフォルトのアクションを実行しています。xmllintをフォーマッターとして設定するためのガイドは次のとおりです。http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html

于 2012-07-25T18:02:23.810 に答える