2011-09-29 28 views
20

我想vim的幫助我縮進我的xml文件,就像我的C代碼。但是,當我使用獲取Vim識別XML

gg=G 

它只是將一切設置在左側。我需要指定一個語法嗎? XML是否被識別爲一種語言?

回答

24

filetype plugin indent on 

.vimrc有Vim的自動識別.xml文件爲XML。您可能需要在此之前放置

set nocompatible 

如果文件擴展名不是.XML,您可以通過使用

:set filetype=xml 

讓類似XML Vim的威脅,它之後你這樣做,Vim的autoindention(和語法高亮和omnicomplete(在XML剛剛關閉標籤,但這仍然是什麼))將正常工作的XML。

+1

以兼容模式運行Vim就像運行舊的vi ...這是兼容模式的一種,但它是隻是很傷心,這是默認設置。 –

+1

如果您在javaFX中編輯FXML,':set filetype = xml'命令爲您的文件帶來了幸運的語法着色。甜! – ncmathsadist

5

沒錯,:set syntax=xml應該工作。在vim 7.3中,這個設置爲:set indentexpr=XmlIndentGet(v:lnum,1)

如果你有一個在線文件,你可能需要:%s/\(<[^>]*>\)/\1\r/g,每一個標籤後插入新行(或不同拆呢)。

然後,gg=G應該工作。

+0

我運行一個很老的版本的Fedora Core的:(堅持vim的7.2,所以我不知道獲得自動縮進。 – IslandCow

+0

@IslandCow我不認爲這很重要。你只需要,如果你沒有'XmlIndentGet'函數來獲取從VIM-7.3運行時'縮進/ xml.vim'。我看不到任何東西在這個文件中使用vim-7.3- – ZyX

+0

在Windows上,XML語法似乎可以正常工作7.2作爲一個用戶,你不應該擔心indentexpr,只要語法是s等等,你應該沒問題。 (雖然你也可以嘗試使用':set filetype = xml') –

0

這一行添加到您的.vimrc文件:

:map <Space>fx :%s/\ </\r</g<cr>:%s/\ android/\randroid/g<cr>:g/^$/d<cr>gg=G` 

格式化點擊space fx