アニメ『かぐや様は告らせたい?~天才たちの恋愛頭脳戦~』(2020)
OP主題歌 鈴木雅之 「DADDY ! DADDY ! DO ! feat. 鈴木愛理」
です。
第2期ももう終盤ですが、やっぱかぐや様、神アニメですね。
かぐや様ももちろん、かわいー、ですが、もう会長と石上君のかっこよさときたら。じゅるり。
今回は、タイトルにあるとおり、Vimだけでテキストに行番号をつけてみます。
かぐや様2期では選挙戦がありましたが、
めでたく就任ってことでJFKの大統領就任演説のテキストに、行番号をつけてみます。
ソースはここ
John F. Kennedy’s Inaugural Address
https://en.wikisource.org/wiki/John_F._Kennedy%27s_Inaugural_Address
演説の冒頭部分です。
Vimだけで行番号をつけるってのは、以下のような:set numberのことではなく、
:%!cat -n的なやつです。
Windowsだとcat -n やnlが使えないときってときどきありますよね。
まあそんなときは、きっとVimも使えないのでしょうが、かろうじてVimだけは使えるっていう稀有な環境なら、Vimのsubstituteをつかってcat -nやnlと同じように行番号をつけることができます。
substituteって文字列置換なので、行頭に番号を入れるのは造作もないことですよね。
たとえば、行頭に0000000を入れてみましょう。
:%s/^/0000000^I/
(^Iは、タブです。)
実行すると、
決まっている番号なら、このように正規表現を使って、ものすごく簡単に行頭に番号を追加できてしいます。
では、各行の行番号を追加したときはどうすればよいでしょう?
やはりsubstituteが使えます。substituteが置換後の文字列を関数にしてやれば良いのです。
s/置換前/\=関数/
置換後を関数にするには、\=をつけてやるだけでよいので簡単ですね。
あと、行番号を返すline(“.”)を使い、書式をきれいにするため、printfも使って置換してみましょう。
:%s/^/\=printf("\%07d\t",line("."))/
コメント