2008-11-26 34 views
19

Khi chỉnh sửa tệp XML trong IntelliJ IDEA, nếu tài liệu tham chiếu lược đồ, IDEA sẽ tìm nạp giản đồ và sử dụng thông tin để tự động hoàn tất. Nó biết những thẻ nào là hợp lệ trong ngữ cảnh nào, vì vậy khi bạn nhấn CTRL-space, nó chỉ gợi ý những thẻ đó. Nó cũng làm nổi bật bất kỳ thẻ nào không hợp lệ theo lược đồ.Chỉnh sửa XML nhận biết lược đồ trong Vim

Có ai biết phần mở rộng cho Vim cung cấp chức năng tương tự không?

+1

thú vị, tôi bị cám dỗ để có một chuyến đi. Nó có hoạt động trong IDEA chỉ để chỉnh sửa, hoặc cũng để viết từ đầu? Đó là, nó đòi hỏi rằng toàn bộ tài liệu là hợp lệ; hoặc một phần đến nơi bạn đang chỉnh sửa là hợp lệ; hoặc nó sẽ làm việc với một mảnh trần? Điều này ảnh hưởng đến việc triển khai. – 13ren

Trả lời

6

Điều gần nhất mà tôi đã thấy cho Vim là tập lệnh XML Completion.

Nó chứa tệp định nghĩa XML cho DocBook 4. [234], XSL FO 1.0, XSLT 1.0, Thư giãn NG 1.0, XML Schemas 1.0, SVG 1.1, XHTML 1.1, XInclude 1.0 và định dạng XML OpenOffice 1.0.

+0

Cảm ơn, điều đó có thể là đủ. –

15

VIM 7+ hỗ trợ mà theo mặc định mà không cần bất kỳ plugin, nó có thể nạp định nghĩa XML, có bộ chuyển đổi cho DTD và SchemaNG:

http://vimdoc.sourceforge.net/htmldoc/insert.html#ft-xml-omni

Ví dụ Vim của tôi 7.3 đã có định nghĩa cho XHTML :

$ rpm -ql vim vim-common | grep xml 
/usr/share/vim/vim73/autoload/xml 
/usr/share/vim/vim73/autoload/xml/html32.vim 
/usr/share/vim/vim73/autoload/xml/html401f.vim 
/usr/share/vim/vim73/autoload/xml/html401s.vim 
/usr/share/vim/vim73/autoload/xml/html401t.vim 
/usr/share/vim/vim73/autoload/xml/html40f.vim 
/usr/share/vim/vim73/autoload/xml/html40s.vim 
/usr/share/vim/vim73/autoload/xml/html40t.vim 
/usr/share/vim/vim73/autoload/xml/xhtml10f.vim 
/usr/share/vim/vim73/autoload/xml/xhtml10s.vim 
/usr/share/vim/vim73/autoload/xml/xhtml10t.vim 
/usr/share/vim/vim73/autoload/xml/xhtml11.vim 
/usr/share/vim/vim73/autoload/xml/xsd.vim 
/usr/share/vim/vim73/autoload/xml/xsl.vim 
/usr/share/vim/vim73/autoload/xmlcomplete.vim 
/usr/share/vim/vim73/compiler/xmllint.vim 
/usr/share/vim/vim73/compiler/xmlwf.vim 
/usr/share/vim/vim73/ftplugin/xml.vim 
/usr/share/vim/vim73/indent/xml.vim 
/usr/share/vim/vim73/syntax/docbkxml.vim 
/usr/share/vim/vim73/syntax/xml.vim 

Hãy thử, rất đáng giá. Tất cả mọi thứ được ghi chép rõ ràng theo liên kết ở trên, tôi sẽ không sao chép-dán nó ở đây.

+0

Hm, những gì người khác có thể hoàn thành? –

+0

Hoàn thành xml out-of-box cho Vim 7+ là tốt đẹp, nhưng tôi chưa bao giờ có thể nhận được tập lệnh vim2dtd để thực sự làm việc để tạo các định nghĩa mới cho các loại XML khác. Kịch bản đã không được cập nhật trong gần một thập kỷ. Tôi muốn giết để có các tập tin autocomplete cho dita xml. – Scribblemacher

0

tham khảo: http://ricardianambivalence.com/2013/02/17/xml-validation-in-vim/

Với bar.xml mở, bạn có thể dễ dàng xác nhận đối với foo.xsd. Trước tiên, lưu các thay đổi của bạn và sau đó nhấn : và nhập thông tin sau (đó là đường dẫn đến lệnh thiết bị đầu cuối).

:! xmllint --noout --schema foo.xsd bar.xml 
+0

Điều này sẽ không hữu ích nếu bạn muốn báo cáo trực tiếp khi bạn nhập. – Soundararajan

+0

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. – nmaier

+0

@nmaier OK. Cảm ơn :) – Soundararajan

0

Tôi đã thu thập một số tài liệu về chủ đề này, bạn có thể tìm thấy nó trên github. https://github.com/tbazant/xml-vim được viết bằng docbook, chuyển đổi thành PDF và tận hưởng!

+0

Xem nhận xét của @ nmaier dưới đây: http://stackoverflow.com/questions/322481/schema-aware-xml-editing-in-vim#comment27428025_18630589 – icedwater

Các vấn đề liên quan