:TOhtml - VimのスクリーンイメージをHTMLに変換

先日、コメントをいただいた記事に行番号が追加されていたのを見て、
Re: オプションをトグルする関数 - bugfix - while ("im the true Vim master"); - vimグループ
どうやってるんだろうと疑問に感じたため。


ソースプログラムに対して行番号を追加するスタイルシート
使っているのかと思ったけれど、そうでもないらしく。


まさか手打ちで行番号を追加したのかな、と思ったけれど
それは面倒だと思ったり。
はてなスーパーpre記法を有効にしつつ、
# 行番号も色が変わっている配色だし・・・


Vim-users.jpの過去ログを読んでいたら、
http://vim-users.jp/2009/06/hack23/
それっぽいのを発見したので、多分これだろうと推測。


先日の記事に対して、使ってみる。

 1 " 関数の概要

 2 "       void Toggle_option(String)

 3 "       Stringで与えられたbooleanオプションをトグルする。

 4 " 使い方:

 5 "       Toggle_option('number')

 6 "       Toggle_option('nonumber')

 7 function! Toggle_option(target_opt)

 8         " 次の場合エラーになる可能性がある

 9         "       1. a:target_optが'no'から始まるが、その後に続く文字列が

10         "          Vimのオプションに存在するものでない場合

11         "          a:target_optの例) noabcdefg

12         "       2. a:target_optが'no'から始まらず、文字列全体が

13         "          Vimのオプションに存在するものでない場合

14         "          a:target_optの例) abcdefg

15         if (a:target_opt =~# "no.*")

16                 let s:target_inv_opt = a:target_opt[2:]

17                 let s:opt_added_amp = '&' . eval('s:target_inv_opt')

18         else

19                 let s:target_inv_opt = 'no' . a:target_opt

20                 let s:opt_added_amp = '&' . eval('a:target_opt')

21         endif

22

23         if eval(s:opt_added_amp)

24                 execute 'setlocal' s:target_inv_opt

25         else

26                 execute 'setlocal' a:target_opt

27         endif

28         unlet s:target_inv_opt

29         unlet s:opt_added_amp

30 endfunction

オプションをトグルする関数 - bugfix

それっぽく見える。きっとこれだろう。
ちなみに:TOhtmlで出力されたHTMLのの内側をコピペした。


カラースキームとかをデフォルトにしてから出力することで、
はてダで現在使ってるテーマのスーパーpre記法と、
同じハイライトになるのかもしれないな。