Soru XML'i tanımak için vim elde etmek


Vim'imi benim C kodum gibi xml dosyalarıma girmeme yardımcı olmak istiyorum. Ancak, kullandığımda

gg=G

Sadece her şeyi sola getirir. Bir sözdizimi belirlemem gerekir mi? XML bir dil olarak tanınır mı?


21
2017-09-29 17:08


Menşei




Cevaplar:


Koymak

filetype plugin indent on

senin içinde .vimrc Vim'in .xml dosyalarını otomatik olarak xml olarak tanımlaması. Koymak gerekebilir

set nocompatible

bundan önce.

Dosya uzantısı .xml değilse, Vim'i xml gibi kullanarak tehdit edebilirsiniz.

:set filetype=xml

Bunu yaptıktan sonra, Vim'in otomatik kilidi (ve sözdizimi vurgulama ve omnicomplete (xml'de etiketleri kapatır, ancak bu hala bir şey)) xml için düzgün şekilde çalışır.


24
2017-09-29 17:31



Vim'i uyumlu modda çalıştırmak, eski modun çalıştırılması gibidir ... bu da uyumlu modun bir noktasıdır, ancak bu varsayılanın sadece üzücü olmasıdır. - Idan Arye
Eğer javaFX'te FXML'yi düzenliyorsanız :set filetype=xml Komut, mübarek sözdizimi rengini dosyanıza getirir. Tatlı! - ncmathsadist


Evet, :set syntax=xml çalışmalı. Vim 7.3'de, bu kümeler :set indentexpr=XmlIndentGet(v:lnum,1).

Tek satırlık bir dosya varsa, gerekebilir :%s/\(<[^>]*>\)/\1\r/g, her etiketden sonra yeni satırlar eklemek (veya farklı şekilde bölmek).

Sonra, gg=G çalışmalı.


5
2017-09-29 17:26



Fedora Core'un oldukça eski bir versiyonunu çalıştırıyorum :( vim 7.2 ile takıldım, bu yüzden otomatik girintiyi alamıyorum. - IslandCow
@IslandCow Bunun önemli olduğunu düşünmüyorum. Sadece ihtiyacın var. indent/xml.vim yoksa vim-7.3 çalışma zamanı XmlIndentGet işlevi. Bu dosyada vim-7.3'e özgü bir şey göremiyorum. - ZyX
XML sözdizimi, Windows 7'de iyi çalışıyor gibi görünüyor. Bir kullanıcı olarak, sözdizimi hakkında endişelenmenize gerek yok, sözdizimi ayarlandığı sürece iyi olmalısınız. (Yine de deneyebilirsiniz :set filetype=xml yerine da.) - dash-tom-bang
Bireysel satır bölme işlemi için biraz daha kolay bir komut için, kullanıyorum:: s /> /> \ r / g yani, her> (xml bitiş etiketi) için bir> (xml bitiş etiketi) yerine bir satırsonu (> \) r) (g globaldir (satırda)). Bu, zaten yeni bir satıra sahip olan ancak hatırlanması hızlı ve kolay olan her bir bitiş etiketinden sonra yeni bir satır bırakacaktır. - Daniel
EVERY etiketinden sonra yeni satırlar istemiyorum, sadece CLOSING etiketleri. Tweaked regex: :%s/\(<\/[^>]*>\)/\1\r/g - ropata


bu satırı .vimrc dosyanıza ekleyin:

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

biçimlendirmek için tıklayın space fx


0
2018-06-16 16:46