Skip to content

paav/xmledit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xml-plugin

Maintainer: Devin Weaver [email protected]
Source: http://github.com/sukima/xmledit
Homepage: http://www.vim.org/scripts/script.php?script_id=301
Version: 1.10.5

Build Status

XML Edit is a file type plugin to help edit XML documents. It includes tag completion and tag jumping.

Licence

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License.
See http://www.gnu.org/copyleft/gpl.txt

Install

xmledit can be installed using a xmledit.vba file or using Pathogen.

Installation using xmledit.vba

First you need a xmledit.vba vimball. You can create one following the instruction in the Build section.

If you do not have VIM version 7.0 or higher this will not work. Either upgrade or deal with the shaddy old plugin which you can get at http://github.com/sukima/xmledit/tree/v1.84. (Alternativly you could manually copy the files to there proper locations however older versions of VIM will not be supported in future development)

To install the created package open the vba file in vim and source it:

$ vim xmledit.vba
:so %

If you are installing this from the source (you don't have a .vba file) you can skip the building of one by running the Makefile:

$ make install

Now read doc/xml-plugin.txt or type :help xml-plugin.txt in VIM.

Installation for Pathogen

To use xmledit in combination with Pathogen you need to place the sources in the bundle directory. This can easily be done by cloning the git repository.

$ git clone https://github.com/sukima/xmledit.git ~/.vim/bundle/xmledit

Instead of cloning you can use git submodules.

Do not use the xmledit.vba file with pathogen.

Build

Run the Makefile to build the vba file.

$ make

Now send it to all your friends.

Testing

The test environment is in the tests directory. It uses RSpec and vimrunner. Execute the test suite:

$ bundle install
$ rake

More information about testing in vim can be found at this blog post.

Using With Other File Types

This can be used with other file types besides XML. There are two ways to accomplish this. The plugin can be used as is for other languages or with extra features that are language specific via the callback method.

The first method is simply to copy xml.vim or symbolically (or hard) link it to the new file type. For example:

ftplugin/
|-xml.vim
|-php.vim -> xml.vim
`-xhtml.vim -> xml.vim

The second method expands on the idea of copying. It uses a callback method which can extend the functionality of the tags for that language. For example in an HTML document you might prefer your table tags to look like this:

<table cellpadding="0" cellspacing="0" border="0">
</table>

But by just linking html.vim to xml.vim you would have to type all that in every time. The callback could allow you to type just <table> and it would add the cellpadding=... attributes for you. The example in the documentation (:help xml-plugin-callbacks) shows how to do this with HTML files.

Caveats

There are conflicts with the AutoComplPop script. If you get errors, add the following to your .vimrc as suggested by @othree in issue #15:

autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags noci
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags noci

How to contribute

Contributions are through Github or via patches. I invite anyone interested to feel free to modify to your hearts content. If your modifications would be useful to others please send me a Pull Request.

I handle maintinance in the following priority:

  1. Pull Requests and patches will be looked at in a much high priority then anything else. I <3 pull requests.
  2. Issue reports are taken for reference but I don't do much with them hoping instead for a pull request or patch.

I am in need of unit tests. Anyone interested in helping please fork and add to the tests/spec/ directory.

Credits

  • Brad Phelan [email protected] for completing tag matching and visual tag completion.
  • Ma, Xiangjiang [email protected] for pointing out VIM 6.0 map <buffer> feature.
  • Luc Hermitte [email protected] for testing the self install documentation code and providing good bug fixes.
  • Guo-Peng Wen for the self install documentation code.
  • Shawn Boles [email protected] for fixing the <Leader>x cancelation bug.
  • Martijn van der Kwast [email protected] for patching problems with multi-languages (XML and PHP).
  • Ilya Bobir [email protected] for patching xml_tag_syntax_pefixes option.
  • Eli L. [email protected] for converting to the vimball packaging format.

About

A filetype plugin for VIM to help edit XML files

Resources

Stars

Watchers

Forks

Packages

No packages published