2009/06/06ツイート問題XMLの各要素は開きタグと閉じタグの組を用いて表現します。閉じタグを毎回手入力する作業は不毛で、スムーズに入力が支援されるべきです。このことは入力の手間を省くだけでなく、入力の間違いを減らすことにも貢献します。解決vimrcファイルに以下の設定を記述します。ENDこれでXMLファイル編集時に</と入力するだけで自動的に以下のように補完されます。事前に特別な設定をすることなく、Vimが標準で提供している機能でXMLの閉じタグが補完できます。XMLファイルを編集時に、<aaa><bbb></bbb></まで入力している状態で、挿入モードのままで<C-x><C-o>とタイプすると、<aaa><bbb></bbb></aaa>のように対応する<aaa>タグが自動的に閉じられます。XMLのための<C-x><C-o>のomnifunc関数は$VIMRUNTIME/autoload/xmlcomplete.vimで定義されています。導入編を参照してください。<C-x><C-o>は非常に入力しづらいキーシーケンスです。XMLを編集中に</と入力した後は、必ず対応するタグを示す文字列を入力することになり、これに例外はまずありません。従って、</と入力すると即座に自動的に閉じタグが展開されることが望まれます。以下の一行をvimrcファイルに記述することで、</と入力すると即座にオムニ補完が実行されます。</<C-x><C-o>しかしXML以外のファイルを編集中に上記補完が勝手に実行されてはたまりません。</とまでタイプすることはなくとも、<のタイプがバッファに即反映されないのは若干のストレスを感じてしまいます。ここで上記特徴をXMLファイル編集時に限定するために、autocmdと組み合わせて以下のように設定する必要があります。ENDここで、XMLだけでなくHTMLに関する設定の行も追加するとなおよろしいでしょう。autocmdを使用して自動的に処理を実行するを参照ください。今回はinoremapを用いて</という入力キーシーケンス自体を上書きするというアプローチを採用しました。他にも、autocomplpop.vimやneocomplecache.vimなどの自動補完プラグインを用いるというアプローチもあります。