2html.vim : ファイルをシンタックスハイライトつきのHTMLに変換
現在、vimエディタで表示している状態そのままを、HTMLファイル化するスクリプトです。 テキストを印刷する時や、他人へHTMLファイルとして公開する時などに利用できます。 (Windows, Mac)
概要
現在、vimエディタで表示している状態そのままを、HTMLファイル化するスクリプトです。
テキストを印刷する時や、他人へHTMLファイルとして公開する時などに利用できます。
Syntaxハイライト、および、行番号もそのまま、HTMLファイルで再現されます。
上の画像が変換前のテキスト、
下の画像が、このスクリプトでHTML化し、Webブラウザで表示したものです。
見ての通り、エディタ上での見た目を極力保っています。
↑ 変換前のテキスト
↓ 上のテキストをHTML化したもの
このスクリプトは、vim6であればデフォルトで添付されています。
インストール方法
このスクリプトは、vim6であればデフォルトで添付されています。
インストールの必要はありません。
使い方
ファイル全体をHTML化する
vim6には、:TOhtmlというコマンドが組み込まれています。
このコマンドを実行すると、現在のバッファの内容を2html.vimスクリプトでHTML化し、
新しく開いたウィンドウに、その内容を表示します。
" 2html.vimスクリプトで、テキストをHTML化するコマンド :TOhtml
:TOhtmlコマンドを実行した直後の状態が下です。
新しく開いたウィンドウのテキストは、まだファイルとして保存される前の状態なので、
好きな場所に保存しましょう。
そのまま、:wで保存した場合には、ソーステキストと同じディレクトリに、
.html拡張子付きのファイルとして保存されます。
保存したくない場合は、:q!でウィンドウを閉じてしまえば良いでしょう。
範囲付きで:TOhtmlコマンドを実行
この:TOhtmlコマンドは範囲指定付きで実行可能で、 その場合、指定した範囲のみHTML化します。
" :TOhtmlコマンドを範囲指定付きで実行する例 :12,19TOhtml
設定
行番号の設定
HTML化した時に、各行の先頭に行番号を付けるかどうかは、
numberオプションを見て、エディタ上の表示と合うように切り替わっています。
html_number_linesという変数に値をセットしておくと、
numberオプションの設定ではなく、html_number_linesの値に応じて、
行番号の表示が切り替わるようになります。
設定例 | 生成されるHTML |
---|---|
:let html_number_lines = 1 | 行番号を付ける |
:let html_number_lines = 0 | 行番号を付けない |
html_number_linesが未定義な状態 | numberオプションに応じて変わる。 |
CSSの設定
html_use_cssという変数に値をセットすると、生成するHTMLがCSSを利用したものになります。
ただし、CSS定義はHTMLに埋め込まれた状態であり、外部のCSSを指定する事もできないので、
この設定にあまり利用価値はありません。
設定例 | 生成されるHTML |
---|---|
:let html_use_css = 1 | CSSを利用したHTMLを生成する。 |
html_use_cssが未定義な状態 | CSSを利用しないHTMLを生成する。 |
preタグの設定
デフォルトでは、生成するHTMLは、 全体が<pre>タグで囲まれたものになります。
html_no_preという変数に値をセットすると、 本文全体を<pre>タグで囲む代わりに、 改行ごとに<br>タグを挿入したHTMLを生成するようになります。
この設定は、1行あたりのテキストが長い時には有効に働くでしょう。
設定例 | 生成されるHTML |
---|---|
:let html_no_pre = 1 | <pre>タグを使用しないHTMLを生成する。 |
html_no_preが未セットな状態 | 本文全体が<pre>タグで囲まれたHTMLを生成する。 |
XHTML形式でファイルを生成する
このスクリプトによって生成されるファイルは、デフォルトではHTML形式のファイルですが、
use_xhtml変数に値をセットしておくと、XHTML形式で生成するようになります。
設定例 | 生成されるHTML |
---|---|
:let use_xhtml = 1 | XHTML形式でファイルを生成する。 |
use_xhtmlが未セットな状態 | HTML形式でファイルを生成する。 |
charsetの設定
変数html_use_encodingにエンコーディングを設定すると、 生成するHTMLファイルのMETA要素のcharsetに、 そのエンコーディング指定がセットされるようになります。
ただし、この変数をセットしても、 実際に生成されるファイルのエンコーディングは変わらないので、 ファイルを保存する前に、希望のファイルエンコーディングに変換しましょう。
" html_use_encodingにutf-8をセットする時の実行例 :let html_use_encoding = "utfー8" (←utf-8を指定する。) :TOhtml (←:TOhtmlコマンドでHTML化する。) :set fenc=utf-8 (←ファイルエンコーディングを変換して、) :w (←保存。)
このスクリプトの使用上の注意事項など
スクリプトの実行時間
テキストが1000行を超えると、:TOhtmlコマンドによるHTMLファイルへの変換処理に、 時間がかかるようになってしまいます。