2011-09-29 12 views
20

Chciałbym vim, aby pomóc mi wcięcia moich plików xml, takich jak mój kod C. Jednak gdy używamPierwsze vim rozpoznać XML

gg=G 

Po prostu ustawia wszystko w lewo. Czy muszę wyznaczyć składnię? Czy XML jest rozpoznawany jako język?

Odpowiedz

24

Put

filetype plugin indent on 

w swojej .vimrc mieć Vima automatycznie zidentyfikować pliki .xml jako xml. Może być konieczne wcześniejsze nałożenie tej kamery na stację roboczą.

Jeżeli rozszerzenie pliku nie jest .xml, można dokonać Vima zagrożenie nim jak xml za pomocą

:set filetype=xml 

Po to zrobisz, autoindention Vima (i podświetlanie składni, a omnicomplete (czyli w xml po prostu zamyka tagi, ale to wciąż coś)) będzie działać poprawnie dla xml.

+1

Uruchamianie Vima w trybie kompatybilnym jest jak uruchamianie starego vi ... co jest w pewnym sensie trybem kompatybilnym, ale jest tylko smutne, że to jest domyślne. –

+1

Jeśli edytujesz FXML w javaFX, komenda ': set filetype = xml' przynosi błogosławiony kolor składni do pliku. Słodkie! – ncmathsadist

5

Tak, :set syntax=xml powinien działać. W vim 7.3 ustawia to :set indentexpr=XmlIndentGet(v:lnum,1).

Jeśli masz plik jednoliniowy, być może trzeba będzie :%s/\(<[^>]*>\)/\1\r/g wstawić znaki nowej linii po każdym tagu (lub podzielić go inaczej).

Następnie powinien zadziałać gg=G.

+0

biegnę dość starą wersję Fedory :(zatrzymany z vim 7.2, więc nie mam get auto tiret. – IslandCow

+0

@IslandCow Nie sądzę, że to ma znaczenie.Trzeba tylko uzyskać 'indent/xml.vim' z środowiska wykonawczego vim-7.3, jeśli nie masz funkcji" XmlIndentGet ".Nie widzę nic specyficzne dla vim 7.3 w tym pliku – ZyX

+0

Składnia XML wydaje się działać dobrze w wersji 7.2 w systemie Windows. Jako użytkownik nie powinieneś się martwić o indentexpr, o ile składnia jest s i tak powinno być dobrze. (Chociaż możesz wypróbować również ': set filetype = xml'). –

0

dodać tę linię do pliku .vimrc:

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

formatowania kliknij space fx