パーソナルツール

xmledit : XML、HTML、SGMLドキュメントのタグ編集操作サポートプラグイン

— カテゴリ:
作者: 小見 拓 最終変更 2012年01月10日 02時13分

XML形式のドキュメントを編集する時の便利機能を持たせたファイルタイププラグインです。 閉じタグを自動的に挿入したり、指定の範囲を指定のタグで囲んだり、 タグを取り除いたりできます。 (Windows)

概要

xmledit : A filetype plugin to help edit XML, HTML, and SGML documents
http://www.vim.org/scripts/script.php?script_id=301

XML、HTML用のvimファイルタイプ プラグインです。
標準のXML、HTML用ファイルタイプ プラグインの機能を拡張し、

  • 自動的に終了タグを挿入する機能
  • 指定範囲をタグで囲む機能
  • タグの除去機能
  • 対応するタグへの移動機能
  • コマンドによるタグのネスト

の機能を提供します。

インストール方法

vim online より、プラグイン(xmledit.tar.gz)をダウンロードしてください。

ファイル URL
xmledit http://www.vim.org/scripts/script.php?script_id=301

ドキュメント(xml-plugin.txt)は、ダウンロードした圧縮ファイルに含まれているので、ダウンロードする必要はありません。

ダウンロードしたプラグインは圧縮ファイルになっているので解凍ツールなどで解凍します。
解凍すると、以下のように展開されます。

圧縮ファイルの構成
doc/
  +
  +---  xml-plugin.txt

ftplugin/
  +
  +---  xml.vim
  +---  html.vim

これらのファイルを、 HOMEディレクトリ(注意)

  • vimfiles

以下にある同名のディレクトリに配置します。
もし、doc、ftpluginディレクトリが無い時は、ディレクトリを作成します。 doc、ftpluginごとコピーしても良いでしょう。
ftpluginディレクトリに、xml.vim、html.vimファイルが存在する場合には、 上書きして、元のファイルを消さないように気をつけてください。
もし、同名ファイルがあったのなら、既にある同名のファイルの最後に、 今回のファイルの内容をそっくり追記すれば、 おおよその場合、問題は無いのではないでしょうか。

最後にdocディレクトリに入れたヘルプファイルを有効にすれば、インストール終了です。
vimエディタを起動して、次のコマンドを実行してください。

:helptags $HOME/vimfiles/doc

使用方

指定範囲をタグで囲む

ビジュアルモードで文字列を選択する。

範囲選択

そこで、下のコマンドを実行すると、選択範囲をタグで囲んでくれます。

<Leader>x

Note

<Leader>は通常、「 ¥ 」キーが割り当てられています。

タグ名と、アトリビュートを指定します。(入力しないことも可能。)

タグ名指定 アトリビュート名指定

↓指定のタグで選択範囲が囲まれます。

エンタグ

タグを取り除く

あるタグの範囲内で、 下のコマンドを実行すると、カーソルの上、もしくはその外側のタグを消去できます。

<Leader>d

Note

<Leader>は通常、「 ¥ 」キーが割り当てられています。

対応タグに移動する

あるタグの上で、 下のコマンドを実行すると、対応するタグにカーソルを移動することができます。
matchit.vim と似たような機能です。

<Leader>%

もしくは、

<Leader>5

Note

<Leader>は通常、「 ¥ 」キーが割り当てられています。

終了タグ挿入

ファイルタイプXML、HTMLの編集時は、XMLの終了タグは、自動的に補完されます。

<xsl:template ma
<xsl:template match='/'>

↓ここで自動的に終了タグが挿入される

<xsl:template match='/'></xsl:template>

空要素タグでも、正しく処理することができます。

空要素タグの場合、終了タグは挿入されません。

<xsl:apply-t
<xsl:apply-templates/>

終了タグを補完させずに閉じる

デフォルトの状態では、開始タグを完成させた時に自動的に終了タグを補完されてしまうのですが、 このコマンドで開始タグを完成させた時は終了タグを補完しなくなります。

例えば、この状態の時にコマンドを実行します。

<xsl:template match='/'
<Leader>>

もしくは、

<Leader>.

Note

<Leader>は通常、「 ¥ 」キーが割り当てられています。

すると、こうなります。
終了タグが補完されません。

<xsl:template match='/'>

コマンドによるタグのネスト

入力モードの状態で、開始タグの直後にカーソルを持っていき、 下のコマンドを入力すると、タグをネストしてくれます。
(終了タグが自動補完された直後が、この状態になっています。)

<Leader>>

Note

<Leader>は通常、「 ¥ 」キーが割り当てられています。

↓この状態が、

<xsl:template match='/'></xsl:template>

こうなります。カーソルは中央の行に来ます。

<xsl:template match='/'>

</xsl:template>

設定

このスクリプトのオプションです。
_vimrc設定ファイルに、この設定を書き込むと有効になります。
他にもオプションあります。

オプション 編集モード 効果 デフォルト 設定例
xml_no_auto_nesting XML、HTML コマンドによるタグのネスト機能を無効化します。値がセットしてあると、ネスト機能は使えなくなります。 コマンドによるタグのネスト機能有効。 let xml_no_auto_nesting = 1
xml_use_xhtml HTML 一部のタグを補完する時に、空要素タグとして補完するかどうか。値が定義してあれば空要素タグとして補完する。 unset let xml_use_xhtml=1

Note

※一部のタグ <img>, <input>, <param>, <frame>, <br>, <hr>, <meta>, <link>, <base>, <area>

注意事項など

このドキュメントでは、オプションに関してあまり詳しく書いていません。
知りたい方は、スクリプトのドキュメントを参照してください。

ドキュメントアクション
コメント
blog comments powered by Disqus