2014年7月11日金曜日

「Vim script テクニックバイブル ~Vim使いの魔法の杖」について

皆の者、我は暗黒美夢王である。執筆者の一人である Shougo に頼まれ、今回は我が「Vim script テクニックバイブル」の紹介を行う。
この書籍に関しては mattn 氏が既に紹介しているので、できるだけ被らない情報を出していくことにするぞ。

最初に注意してもらいたいが、これは「純粋な Vim script の学習のための本」であ
る。よって、Vim プラグインについては一部を除き全く取り上げていないので注意する
ように。Vim プラグインについて知りたかったら、前作である「Vim テクニックバイブル」を参照するのだ。もちろん、書籍中に暗黒美夢王が登場したりといったサプライズもないぞ。

これまで Vim script を学ぶ修行というのは険しく、辛いものであった。
我も「闇の Vim の使用法を極める」という職業柄、他人より「Vim scriptを学ぶにはど
うすればよいか」を聞かれることがあ り、その度に苦しんだ。我が Vim script を学ぶ
ことができたきっかけは Vim plugin を書いたからである。その上で、徐々に知識を
アップデートしていったのだ。

Vim script の知識は Vim plugin や Web, :help で吸収することができる。
しかし、 Vim plugin のソースコードや Web の情報は初心者には正しいかどうか分から
ないし、:help は内容が正確だが分かりにくい。
この書籍は執筆時点での最新版である Vim 7.4 に対応しているうえに執筆陣は大ベテラ
ンなので極めて信頼のおけるものである。「Vim script を学ぶためのとっかかり」と
なり、「迷ったときにすぐに戻ってこれる」ものとなるだろう。

これより、内容の紹介に移る。

第一章は Vim script の基本を解説している。紹介している事項は極めて基本的なもの
であるが、読者が Vim script について全く知らない場合は、ここを読むだけでも勉 強
になるであろう。

第二章は Vim script の実行方法と一通りの文法を解説している。第一章と同じく、初
心者には極めて有用な章である。

第三章は応用編となる。silent, execute, マッピングなど、Vim script を書く上
で重要なテクニックについて紹介している。これは本格的に Vim plugin を書きたい場
合に必要となる知識だ。

第四章は Vim script の実行方法である。Vim script はどのようにして実行されるのか
を知ることができる。キーマッピングや補完についても解説されている。

第五章は簡単な Vim plugin を作成し、これまでの復習を行う。

第六章は組み込み関数リファレンスである。Vim script でよく使われる関数をまと
め、:help に載っていない Tips 情報をできるだけ紹介した。これは書籍にしかできな
いことであり、この本はこの章だけでも購入する価値があるはずである。
ちなみに、Vim script のよく使う関数しか解説していないにもかかわらず、この章だけ
で 40 P を越えている。

第七章は上級編である。Vim script のデバッグ情報、高速化の方法、最小構成の作り
方、Web API を Vim から使う方法、vimproc、外部インタフェースについてなどが載っ
ている。

mattn 氏も書いているように、この書籍の執筆には KoRoN 氏の尽力が必要不可欠であっ
た。KoRoN 氏がいなければ、この本が出版されることはなかったであろう。我からも、
ここに感謝の意を表明しておきたい。

さて、豪華な執筆陣と確実な内容、賢明な読者は値段が気になっているのではないだろうか。
「でも、お高いんでしょう?」
「こんなにも内容が充実した書籍がなんと 2786 円(消費税 8% 税込) !」
消費税が上がり、世知辛い世の中になんと 2786円(消費税 8% 税込) なのである。
前作の Vim テクニックバイブル(3218 円:税込)よりも安く、値段が 3000 円を余裕で切ってい
るのはもはや脅威だ。個人的には 3000 円を切るか切らないかで書籍の購入のための心
理的障壁がかなり異なる。特に学生にはこの点が重要となるだろう。

これを読んでいる君、悪いことは言わない。この書籍の発売後には書店へ急ぐべきである。そして我の言っていることが真実であるのかどうか、その目で確かめてほしい。

2014年4月2日水曜日

Web 製作者のための Sublime Text の教科書レビュー

この記事は Vim Advent Calendar 2013 123日目の記事である。今回は先日発売された
Web 製作者のための Sublime Text の教科書」のレビューを行う。えっ、Vim の話題
じゃないって? Vimmer の間には Sublime Text の書籍に興味がある者もいるだろう
し、「Vimmer の視点で見た Sublime Text 本のレビュー」というのは VAC のネタとし
て十分需要があると判断したのだ。VAC は執筆が綱渡りの状態のようだし、ここで支援
しておこうと思ったのも理由としてある。バトルエディターズでもお 馴染みかもしれな
いが、Sublime Text は Web 界隈を中心に最近人気を博して いるテキ ストエディタで
ある。

Sublime Text は Dreamweaver 等からの移行はよく見掛けるが、Emacs/Vim からの本格
的な移行はそれほ ど多くない。ただし、Emacs/Vim に馴染めなかった層の取り込みは
狙っているようであ る。Sublime Text はテキストエディタだが、IDE 的な機能も取り
込んでおり、エディタ と IDE の中間的存在と理解するとよいだろう。あらゆる意味
で、「イマドキのテキスト エディタ」なのである。Emacs/Vim よりも機能が整理されて
いる分拡張性は低いが、後発なだけに 設計が洗練されているとも言える。

この本は「Web 製作者のための」と冠するだけあってなんとフルカラーであり、画面写
真をふんだんに盛り込んでいる。HTML, CSS, JavaScript 関連の本はフルカラーである
ことが多いので、それらをイメージしてもらうとよいだろう。これが Emacs/Vim の教科
書ならばフルカラーというのはまずありえない。ユーザー層の違いを垣間見る ことがで
きる。多数のスクリーンショットはとても分かりやすく、初心者には理解が早いに違い
ない。

もちろん、Sublime Text のパッケージマネージャである Package Control についても
触れられている。私はこの本で Sublime Text のパッケージマネージャが以前のバー
ジョンのプラグインをバックアップしていることを知った。自作パッケージの作り方も
多少解説をしている。とはいえ、それがこの本のメインではないので簡単に流される程
度である。

この本で一番役立つといってよい部分はプラグインの紹介である。多数の Sublime Text
のプラグインがスクリーンショット付きで解説されている。私は Sublime Text ユー
ザーではないのだが、普通の人はここだけでこの本の元は取れるかもしれない。ただ
し、パッケージのチョイスが Web 系(特にデザイナー系)に偏っているので注意してほし
い。「Web 製作者のための」本であるので当然だが、それを予め理解しておかないと
「自分の必要なプラグインは紹介されてなかった」となりかねない。

最近開発が進んでいるバージョンである Sublime Text3 にも対応。Sublime Text3 は機
能の改良が進んでいるらしく、これが広く使われるようになれば Sublime Text は第三
のエディタとして更に頭角を表してくる可能性はある。

Vim ユーザーとして見ても、この本は十分に価値のあるものだった。今は別のエディタ
を使っている人達もこの本を読んで Sublime Text について勉強することは悪くないと
思う。私はせっかくだから、この本で勉強した知識をバトルエディターズ中で生かせな
いものかと考えている。

2013年12月19日木曜日

特技はVim

面接官「特技はVimとありますが?」
学生 「はい。Vimです」
面接官「Vimとは何のことですか?」
学生 「テキストエディタです」
面接官「え、テキストエディタ?」
学生 「はい。テキストエディタです。オープンソースで開発され、無料で利用できます」
面接官「・・・で、そのVimは当社において働くうえで何のメリットがあるとお考えですか?」
学生 「はい。テキストファイルを編集できます」
面接官「いや、当社には編集するようなテキストファイルはありません」
学生 「でも、バトルエディターズではあのEmacsにも勝ってるんですよ!」
面接官「いや、勝つとかそういう問題じゃなくてですね……」
学生 「VimはVimプラグインも使えるんですよ」
面接官「ふざけないでください。それにプラグインって何ですか。だいたい……」
学生 「Vimプラグインです。Vimプラギンという人もいます。プラグインというのは……」
面接官「聞いてません。帰って下さい」
暗黒美夢王 「クックック……我を怒らせてしまったようだな。我がVimの力を見せてやろう」
面接官「いいですよ。見せて下さい。Vimの力とやらを。それで満足したら帰って下さい」
暗黒美夢王 「フハハハハ!!!。命拾いをしたな。このVimにはif_luaが有効化されていないようだ」
面接官「帰れよ」

2013年11月17日日曜日

暗黒美夢王が見た VimConf2013(ぼくの VimConf2013のかんそう)

皆の者、久しぶりだな。我は暗黒美夢王である。今回は、VimConf2013 に参加してきた
ので感想記事を書いておきたいと思う。これを読むだけでは内容が全く分からないかも
しれないが、それは仕様である。詳しくは公開されたスライドをチェックするほうがよ
いだろう。

1. 「How to suggest new features for Vim」 by KoRoN 氏


光のVimの伝導者である KoRoN 氏の発表であった。
Vim にパッチがマージされるためにはどのようにすればよいか、氏の具体的なパッチを
挙げてまとめられていた。我ら闇のVimmerにとっては、基本的に闇(プラグイン)の力で
Vimを改造していくため、パッチという方法はあまり行われない。
それでも、プラグインを改良するためにパッチという力が必要なときはあるので、この
発表は有意義なものであった。

2. 「Evil is justice」 by esehara 氏


Emacs で Vim を模倣する Evil-mode の紹介。
我は中途半端な Vim 化が大嫌いなので、こういう機能は使わないが、一部には需要があ
るのだろう。彼は Emacs 使いなのに編集方法が Vim に傾いているので Emacs 界隈では
異端児なのだと思われる。闇の Emacs 使いとは彼のような人達のことをそう呼ぶのかも
しれない。

3. 「Vim から Git を使う」 by cohama 氏


Vim から Git を快適に使うための方法の解説。これだけを聞くと闇のVimmer 向けの発
表に思えるかもしれないが、デフォルトの環境で Vim から Git を使うための方法も紹
介されており、なるほどと感心した。光の Vimmer にも有意義な発表だったと言えるだ
ろう。

4. 「vital.ProcessManager」 by ujihisa 氏


Vital の ProcessManager モジュールの解説。我はまだ使ったことがないのだが、面白
いプラグインだとは思った。vimshell もこれで書き換えるべきなのかもしれないが、ま
だ保留である。我にはもっとやらないといけないことが残っているからな……。

5. 「Vim の RUNTIME の話」 by Linda_pp 氏


Vim に標準添付されるプラグインの解説。これまであまりまとまって解説されることは
なかったので、光の Vimmer にはよい発表だったのではないだろう か。

6. 「How to write patch to Vim」 by k_takata


Vim 界のパッチ職人である k_takata 氏の発表。パッチの書き方について、具体的な話
をしていた。パッチを書く前の話に重点を置く KoRoN 氏の発表とは微妙に切り口が違っ
ていて、内容が被っていなかったのはよかった と思う。「お気に入りのパッチ」という
表現に、氏の並々ならぬパッチへの愛情を感じた。我々がプラグインを愛するように、
彼はパッチそのものを愛してやまないのだろう。

7. LT 「iVimConf作りました」 by dictav 氏


iVimConfアプリを作った人の話である。このアプリ、せっかくなので他のイベントにも
活用できないものだろうか?

8. LT 「Emacs の紹介」 by kiwanami 氏


Vim 勉強会で Emacs の話をするとは、氏の勇気に敬意を表さざるをえない。
まぁ、我も Emacs 勉強会にて Vim の話をした過去があるのだが……。
ちなみに kiwanami 氏が意外と Vim を使っていることには驚いた。
Emacs を鍛えるのにはピアノ、暗黒美夢王覚えた。

9. LT 「duzzle.vim」 by deris01216 氏


Vim script で書いた迷路脱出ゲームの紹介。
我はプラグインにしか興味がないのでゲームは作れないが、こういったものが多く登場
してくると面白いように思う。

10. 「About of neocomplete」 by 暗黒美夢王


最後の発表は、我による neocomplete プラグインの紹介記事であった。
詳細はスライドのほうを参照してほしい。発表中に暗黒美夢王の精神が不安定になり、
Shougo の人格に切り替わることがあったのが反省点であった。やはり暗黒美夢王の人格
を長時間維持するのは難しい。次回は改善したいと思う。

Ext: 懇親会


懇親会では、諸事情により本編では発表できなかった新曲を披露した。なかなか好評
だったので、皆も歌ってみるとよい。では、さらばだ。

編集王バトルエディターズ 第一期主題歌 「暗黒美夢王の叫び」

 さて、我は暗黒美夢王だ。昨日はVimConf2013の懇親会にて、新曲を披露した。
なかなか好評だったのだが、懇親会に参加できなかった者もいるだろうから、ここに歌詞を公開しておく。実際に自分で歌ってみると感極まるに違いない。

------------------------------------------------------------------------------------

編集王バトルエディターズ 第一期主題歌
「暗黒美夢王の叫び」 元ネタ『渇いた叫び

このまま もう少し 使おう 力を抜き
増えてく 機能に疲れ 去ってく 使用者(ユーザー)を見た
使い慣れたエディタに 飽きてくる このごろ
Vim がもう一人の自分を作る(フハハハハ!)

彼の情熱が凍りついた心を解かしてく
君と一緒にエディットをしたいな(Vim with me!)
誰も知らない エディタが 僕の中にある
拡張性がカギ 信じて I can edit the Vim

いくつものプロジェクト 一緒に越えただろう?
気が済むまで改造してた あの日の僕等(ぼくら)のエディタ
時代が追い付くなら またきっと評価されるね
その時が来るまで 諦めない

冷めてく想いは どうしても避けられないけど
恋に落ちて 変わってくのもいいね(Vimと一緒に)
焦らず騒がず デフォルトでもいいと思うから
自分の心をエディットしよう just edit my heart

彼の情熱が 皆の思いを呼び覚ます
君を誘ってエディットをしたいな(Vim is my editor!)
誰にも作れない エディタは君の中にある
エディタを信じて 証明しよう Vim is my heart
エディットは続いてく

2013年11月9日土曜日

Vim Advent Calendar 337日目:「バトルエディターズ 第三話:宿命の対決」

※:この投稿には暗黒美夢王成分が大量に含まれています。ネタをネタと分かる人だけが読んでください。実在する人物・団体・テキストエディタ・アニメとは一切の関係がございません。

クックック……。我の名は暗黒美夢王だ。宿主であるShougoには、しばらくの間眠っていもらっている。これは Vim Advent Calendar の第337日目である。次回はmittan氏の「MacのVimで通知センターを使う」だ。Vimmerならフォローしておくように。

さて、今回はVACでバトルエディターズの第三話を発表することにした。本当はVACの一部ではなく、普通にこのブログ内で発表する予定だったのだが、欠番となった337日目を書く者が誰もいないと聞いたので、急遽我が代役として記事を書くことになったのだ。「純粋な」Vimの記事を期待したものにはいささか期待はずれかもしれんが、正式な記事(344日目)は本日manga_osyo氏が書いてくれることだろう。

第一話第二話の復習は済ませたか? 狂気の世界の始まりといこう……。

------------------------------------------------------------------------------------------------
編集王(エディットキング) バトルエディターズ
第3話:宿命の対決

注意:この物語はフィクションです。実在する人物・団体・ソフトウェア・テキストエ
ディタとは一切の関係がありません。宗教論争をする意図もありません。

注意:この物語を読んだところで、テキストエディタの知識が付くわけがありません。
物語中に存在するテキストエディタのネタはオマージュ程度であり、知っている人がほ
くそ笑む程度のものです。期待しないようにしましょう。

注意:この物語は皆の反応を見るためのテスト版であり未完成です。話の内容は予告な
く変更される可能性があります。

「ルールを守って楽しくエディット!」

--------------------------------------------------------------------------------
Scene 1
--------------------------------------------------------------------------------

「修君、昨日の Vim エディタについて、先生に詳しい話を聞かせてもらえるだろう
か?」

僕は登校そうそう、海(かい)先生に呼び出されていた。

「な、なんの話でしょうか……」

「とぼけても無駄だよ。私も含めて、みんな見ているんだ」

さっぱり分からないが、僕が Vim を持っていることがバレてしまっているらしい。
どうすれば……。

「とにかく、一度ディスクの中身を確認させてもらうよ。変なソフトウェアが仕込まれ
ていてはいけないからね」

ほとんど無理矢理に僕のディスクがスキャンされていく。ただ、先生はスキャン結果を
見ながら首を捻っていた。

「うーーーん、おかしいな。特に変なデータはない……。私の見間違いだったのだろう
か。うむ、教室に戻っていいぞ」

「では、失礼します……」


「んで、修どうだったのよ」

僕の元に現れたのは来夢ちゃんだった。よく分からないけれど、ずいぶんと僕に絡んで
くるようになった気がする。僕は彼女になにかしただろうか。記憶がないんだよなぁ。

「僕が Vim を持っているんじゃないかってさ。まあでも見つからなかったんで、早々に
終わったよ」

実は持っているわけなんだけどね。なんで見つからなかったんだろう。
そのおかげで僕は助かったわけだけど。

「Vim が見つからなかったの。そう。それは不思議ね……」

--------------------------------------------------------------------------------
Scene 2
--------------------------------------------------------------------------------

「さーて、今日こそは早く家に帰って Vim を愛でる作業に戻るぞー」

このまま学校に残っていたら、何をされるか分からないからね。昨日はできなかった、
Vim にあんなことや、そんなことを……。

僕を帰宅途中の生徒達が遠巻きに眺めている。いかんいかん。
このままでは、皆から僕はテキストエディタで妄想する変態に思われてしまう。

「なんだろ、これ」

靴箱の中に何か入っている。確認してみるとそれは手紙のようであった。

『昨日のエディット拝見しました。ぜひ、放課後校舎裏に来てください。話したいこと
があります by あなたの永遠のライバル』

「まさか……これはラブ・レター!」
なんということだ。学生時代における伝説のアイテム。実際に存在したというの
か……。Vim を手に入れてから僕は運が向いてきたようだ。
テキストエディタだけじゃなくて彼女までゲットするだなんて。ぐへへ。
『まったく、テキストエディタではなく女にうつつを抜かしおって……』

「ん、誰の声だろ……誰もいないか」

僕はそのまま校舎裏へと急ぐのだった。そこで待っていたのは、

「ようやく来たか……我が永遠のライバル」

「誰、キミ。僕は女の子に呼び出されて……」

「それを出したのはこの俺だ。俺の名前は楠崎遠馬(くすざきえんま)。覚えておけ」

「なん……だって? 僕の純情を返せよ、うわーん」

「ごちゃごちゃうるさい奴だな。嘘は言っていないぞ。『昨日のエディットを見てい
た』から俺はお前に興味を持った。Emacs 使いという Vim の永遠のライバルが、校舎裏
に呼び出したのだ。要件は一つしかなかろう。早く俺とエディットをしろ」

「た、確かに言われてみるとそうかもしれないけど、僕の純情を弄ぶなんて許さない
ぞ。勝負だ!」

Vimを手に入れた僕に怖いものなんてない。怒りに任せて勝利を挑む。

遠馬:EP 4000 メモリ 4/8 メインエディタ Emacs
修:EP 4000 メモリ 4/8 メインエディタ vi

「「編集(エディット)!」」

「あれ、Vimが見当たらない。なんで代わりに vi を実行していることになっているん
だ?」
「Vim の代わりに vi とは、俺も舐められたものだな」

「ちょ、待って、違うんだ。ぐわーー」

遠馬:EP 3000 メモリ 7/8 メインエディタ Emacs
修:EP 0 メモリ 5/8 メインエディタ vi

「ぐはぁ……。つ、強い」

僕は彼に全然歯が立たなかった。初めて Emacs とエディットしてみたけど、こんなに強
いだなんて。

「全く、他愛もないものだ。本当にコイツが昨日 Sublime 使いを破ったというのか?」
vi では俺に敵わないことは分かっただろう。そろそろお前の Vimを見せてみろ」

「実行したいんだけど、実行できないんだよ。ぐふっ」

『全く、我の契約者ともあろう者がふがいないものだな』
「誰だよ君は……」
『我の名は暗黒美夢王(ダークビムマスター)。後は我に任せて眠っておけ』
「暗黒美夢王……? もう、眠くてなにも考え……」

そして、僕の意識はまた闇へと堕ちるのだった。

--------------------------------------------------------------------------------
Scene 3
--------------------------------------------------------------------------------

宿主と交代で我の意識が覚醒する。

「ふあーぁ。さすがにまだ寝たりないな」

「なんだ、こいつは……」

「ほう、お前が宿主をコテンパンにしていたのだな」

「さっきとは雰囲気が違う。噂通りか、ようやく出て来たな Vim 使いよ」

「我を待っていたのか。モテる男はつらいものだ。どうせならテキストエディタにモテ
たいところであるが」

「俺の名前は楠崎遠馬。そこの Vim 使い、Emacs の使い手である俺と勝負しろ!」

「正直、Emacsとのエディットはとうの昔に飽きている。我としてはピチピチの新しいエ
ディタとエディットしたいものだ。クックック……」

「気持ち悪いやつだな」

「どうしても我とエディットしたいというのなら一つ問おう」

「何だと?」

「簡単なことだ。お前にとってテキストエディタは何だ」
これは我にとって重要な質問である。さて、何と答えるのだろうか。

「テキストエディタか。何を聞くかと思えば下らないな」

「いいから答えてみろ。返答次第ではお望みどおり勝負してやってもよい」

「フン、テキストエディタは俺にとってただの道具にすぎない。Emacs は単純に俺の編
集速度に付いてこれたから使ってやっているだけだ。俺はテキストエディタを使って世
界を支配する。そのためにはまず、Vimの後継者というお前をエディタバトルで破る必
要が……」

「クックック……フハハハハ!」

「何がおかしい」

「もう十分だ。お前は我に『怒り』というイベント名の autocmd を発動させてしまった
(お前は私を怒らせた)ようだ。当然、我はこれをハンドルするわけだが、覚悟はで
きているだろうな」

遂に我を本気で怒らせるものが現れたらしい。これほどの回答があるとは。クックッ
ク、これは胸が踊る。

「何を言っているのかさっぱり分からん。勝負するのかしないのか、ハッキリしてもら
おう」

「我が名は暗黒美夢王(ダークビムマスター)だ、覚えておけ。さっきの台詞聞こえてい
たぞ、Emacs使い。Vim使いである我との勝負を望んでいるのであろう? 良いだろう。
受けてやる」

「フ、フン。まぁ良い。この俺にお前の力を見せてみろ。俺の Emacs で貴様のエディタ
を叩きのめすぜ」

「さあ、エディット・タイムだ!」

両者、再度エディタディスクを構える。

「エディタディスク セット!」
「メインエディタ 実行開始!」

「Vim 実行」
「Emacs 実行」

「AR モニター リンク完了!」
「「編集(エディット)!」」

--------------------------------------------------------------------------------
Scene 4
--------------------------------------------------------------------------------

- TURN 1 -

遠馬:EP 4000 メモリ 4/8 メインエディタ Emacs
美夢王:EP 4000 メモリ 4/8 メインエディタ Vim

Emacs 戦闘力 0
Vim 戦闘力 1000

「Emacs は他のエディタと異なり、エディタの基本戦闘力が 0 だ。ただし……Emacs が
実行されたことにより、Emacs の機能が自動で適用される。プラグイン『el-package』
をディスクから自動でインストールする。『パッケージ・イニシャライゼーション!』」
「何だと……。最近のEmacsにはこんな機能が付いていたのか。面白い」
「プラグインがインストールされたことにより、Emacs の戦闘力は 800 アップ!」

Emacs 戦闘力 0 → 800

遠馬:EP 4000 メモリ 5/8 メインエディタ Emacs
美夢王:EP 4000 メモリ 4/8 メインエディタ Vim

「先攻は我が貰う。我のターン、ロード!」
「我はプラグイン『neo-snippet』を Vim にインストール! さらに neo-snippet の機能
を適用。EP を 500 支払うことで、メモリ上に neo-snippet トークンをプラグイン扱い
でエディタにインストールする。『ネオ・スニペット・エキスパンション!』」

Vim 戦闘力 1000 → 1500 → 2000

「先攻は最初のターン攻撃できない。ターンエンドだ」

「ほう、それが噂に聞く neo シリーズのプラグインだな。俺のターン!」

遠馬:EP 4000 メモリ 5/8 メインエディタ Emacs
美夢王:EP 3500 メモリ 6/8 メインエディタ Vim

「俺はロードをスキップし、 Emacs に標準でインストールされているプラグイン
『el-package』の機能を適用する! 『パッケージ・インストレーション!』」

「el-package の機能により、俺はディスクからプラグインをランダムで一つ Emacs に
インストールすることができる。俺がインストールするのは『el-popup』。プラグイン
がインストールされたことにより、Emacs の戦闘力は 800 アップ!」

Emacs 戦闘力 800 → 1600

遠馬:EP 4000 メモリ 6/8 メインエディタ Emacs
美夢王:EP 3500 メモリ 6/8 メインエディタ Vim

「後攻はすぐに攻撃が可能だが、エディタの戦闘力が満たない。俺はここでターンを終
了する。命拾いしたな」

- TURN 2 -

「我のターン、ロード! 我はプラグイン『neo-interface』を Vim にインストールす
る。このプラグインは秘められた機能を持つが、このプラグインは起動が
遅いので、インストールされたターンは機能を適用できない」

遠馬:EP 4000 メモリ 6/8 メインエディタ Emacs
美夢王:EP 3500 メモリ 7/8 メインエディタ Vim

Vim 戦闘力 2000 → 2500

「だが、これで Vim の戦闘力は十分増加した。Vim で Emacs に対してバトル!」
「ぐぅ……。この俺が先に攻撃を受けるとは」

遠馬:EP 3100 メモリ 6/8 メインエディタ Emacs
美夢王:EP 3500 メモリ 7/8 メインエディタ Vim

「我はこれでターンを終了する。さあどうする? Emacs 使い」

「俺の名前は遠馬だ。覚えておけ。el-package の機能により、俺はディスクからプラグ
インをランダムで一つ Emacs にインストール! 俺がインストールするのは
『el-complete』。プラグインがインストールされたことにより、Emacs の戦闘力は 800
アップ!」

Emacs 戦闘力 1600 → 2400

「しかし、我の Vim のほうが戦闘力が上だ」

「それはどうかな。『el-popup』と『el-complete』の二つがメモリ上に存在
することで、俺は『el-complete』の効果を適用する! このターン、Emacs
の戦闘力を 1.5 倍にする。『オート・ポップアップ・コンプリション』」

「なんだと……?」

 -------------------------------------------------------------------------------
|el-complete:プラグイン・Emacs
|このプラグインは Emacs にのみインストールすることができる。
|機能『オート・ポップアップ・コンプリション』 この機能は『el-popup』がエディタ
|にインストールされている場合のみ適用可能である。このターン終了まで、このプラグ
|インをインストールしたテキストエディタの戦闘力は1.5倍となる。この機能は1 ター
|ンに一度のみ適用可能である。
 -------------------------------------------------------------------------------

Emacs 戦闘力 2400 → 3600

「戦闘力 3600 か。さすがにやるものだな」

「Emacs で Vim にバトル!」

「くぅ……」

「俺はここでターンを終了する。Emacs の戦闘力は元に戻る」

Emacs 戦闘力 3600 → 2400

- TURN 3 -

遠馬:EP 3100 メモリ 7/8 メインエディタ Emacs
美夢王:EP 2400 メモリ 7/8 メインエディタ Vim

「我のターン、ロード。我は『neo-interface』の機能を適用する! 自分の
メモリ上のコマンドを Vim プラグイン扱いでインストールする。『ネオ・イ
ンタフェース・インテグレーション!』」

 -------------------------------------------------------------------------------
|neo-interface:プラグイン・Vim
|このプラグインは Vim にのみインストールすることができる。
|機能『ネオ・インタフェース・インテグレーション』 自分のメモリ上にある未実行の
|任意のコマンドをVim プラグイン扱いで Vim にインストールする。インストールした
|コマンドは実行できない。コマンドの機能はそのまま適用できるが、コマンドの機能を
|適用した場合、コマンドをトラッシュに送る。この機能はインストールしたターンには
|適用できず、1 ターンに一度のみ適用可能である。このプラグインがトラッシュに送ら
|れる場合、この機能でインストールされたプラグインをトラッシュに送る。
 -------------------------------------------------------------------------------

Vim 戦闘力 2500 → 3000

遠馬:EP 2200 メモリ 7/8 メインエディタ Emacs
美夢王:EP 2400 メモリ 7/8 メインエディタ Vim

「俺のターンだ。el-package の機能により、俺はディスクからプラグインをランダムで
一つ Emacs にインストール! ここで Emacs の戦闘力が更に 800 アップ」

Emacs 戦闘力 2400 → 3200

「俺はさらにここで、特殊コマンド『インスタント・プラグイン』の機能を適用する!
このターンにインストールしたプラグインの機能を無効にすることで、プラグイントーク
ンをエディタにインストールする」

遠馬:EP 2200 メモリ 8/8 メインエディタ Emacs
美夢王:EP 2400 メモリ 7/8 メインエディタ Vim

Emacs 戦闘力 3200 → 4000

「まだだ! ここで俺は『el-complete』の効果を適用する! このターン、Emacs
の戦闘力を 1.5 倍にする。『オート・ポップアップ・コンプリション』」

Emacs 戦闘力 4000 → 6000
Vim 戦闘力 3000

「Emacs は Vim にバトル!」

「くっ、これが通れば負ける……」
我の Vim を Emacs の一撃が襲う!

--------------------------------------------------------------------------------
Scene 5
--------------------------------------------------------------------------------

「ここまでだな、Vim 使い。いくら Vim といえども Emacs には勝てないのだ。これは
今までの歴史が証明して……」

遠馬:EP 2200 メモリ 7/8 メインエディタ Emacs
美夢王:EP 900 メモリ 6/8 メインエディタ Vim

「なん…だと?」

「ふう、危ないところだったな。我はさっきの攻撃の瞬間、特殊コマンド『テキストエ
ディタを、あきらめない』を適用していた! 我とテキストエディタは深い絆で結ばれて
いる。たとえ何があろうともテキストエディタを諦めない、それが我のポリシーだ。
『ネバーギブアップ・エディタ!』」

 -------------------------------------------------------------------------------
|テキストエディタを、あきらめない:特殊コマンド・速攻(クイック)
|機能『ネバーギブアップ・エディタ』 このターン受けるダメージを半分にし、エディ
|タが受けたダメージの半分をエディタの戦闘力に加える。このコマンドの機能は相手の
|ターンでも適用できる。
 -------------------------------------------------------------------------------

Vim 戦闘力 3000 → 3750

「戦闘力も上がって……くっ。ここでターンエンドだ」

Emacs 戦闘力 4000

- TURN 4 -

「我のターン、ロード。我は再度 neo-interface の機能を適用する。これに
より、Vim の戦闘力は 500 ポイントアップ!」

Vim 戦闘力 3750 → 4250

遠馬:EP 1950 メモリ 8/8 メインエディタ Emacs
美夢王:EP 900 メモリ 7/8 メインエディタ Vim

「前のターンはうまくかわされたが、今度こそお前の最後だ! 俺のターン、ロード」

「フン、お前のメモリをよく見てみろ。ロードするべきメモリは既に埋まっている。メ
モリが一杯の状態でロードした場合、メモリに入りきらないコマンドはランダムで破壊
される。さて、何のコマンドが破壊されるかな?」

「俺の el-complete が!」

Emacs 戦闘力 4000

「おっと残念、君の『el-complete』はトラッシュに送られてしまったようだ。これでは
自慢の補完機能が使えないな」

「くっ……。計画が崩れたか。だがまだ手はある。俺は、プラグイン
『el-file』の機能を適用する。EP を 500 支払うことで、メモリ上のコマ
ンドを Emacs プラグイン扱いとしてインストールする。『イーマックス・ファイル・オ
ペレーション!』」

遠馬:EP 1450 メモリ 8/8 メインエディタ Emacs
美夢王:EP 900 メモリ 7/8 メインエディタ Vim

Emacs 戦闘力 4000 → 4800

「Emacs で Vim にバトル!」

「ぐぅううう」

遠馬:EP 1450 メモリ 8/8 メインエディタ Emacs
美夢王:EP 350 メモリ 7/8 メインエディタ Vim

「少し残ったか。だが、もはやお前のエディタはクラッシュ寸前。次の俺のターンがお
前の最後だ!」

- TURN 5 -

「それはどうかな。我を仕留め損なったことをお前は後悔することになるだろう。だ
が、さすがは Emacs 使いだ。我をここまで追いつめるとは。我に本気を出させたこと、
光栄に思うがよい!」

「何、今までは手を抜いていたというのか」

我の手に光が宿る。今こそ、あのコマンドをロードする時。

「これこそが我の本気のロードだ。一流のエディタ使いのエディットは全てが必然。
ロードするコマンドすらこの手で創造する。シャイニング・ロード!」
「なん……だと? インチキロードもいい加減にしろ!」

遠馬:EP 1450 メモリ 8/8 メインエディタ Emacs
美夢王:EP 350 メモリ 8/8 メインエディタ Vim

「我が創造(ロード)したのは、特殊コマンド『neoの覚醒』。『neoの覚醒』の機能を我
が Vim に適用する。Vimは真(ネオ)の力によって新たな進化を遂げる。覚醒せよ、『ネ
オ・ビム・エグゼキューション!』」

 -------------------------------------------------------------------------------
|neo の覚醒:特殊コマンド
|機能『ネオ・ビム・エグゼキューション』 3 つ以上の『neo』と名の付くプラグイン
|をインストールした Vim をトラッシュに送り、『neo-Vim』をエクストラディスクより
|特殊実行する。
 -------------------------------------------------------------------------------

 -------------------------------------------------------------------------------
|neo-Vim:エディタ 基本戦闘力 1000
|このコマンドは直接実行できない。『neoの覚醒』の機能によってのみ実行することが
|できる。このエディタはVimとしても扱う。
|機能『???』
|Vimがneo(真)の力を引き出すことによって生まれた新たなエディタ。neo のプラグイン
|と組み合わせることでその真価を発揮する。
 -------------------------------------------------------------------------------

neo-Vim 戦闘力 4750

「neo-Vim の機能を適用。このコマンドは neo と名のつくインストールされたプラグイ
ン x 800 ポイント戦闘力を上げる。既にインストールされた neo という名のプラグイ
ンは 3 つ。よって、900 ポイントアップ!」

Vim 戦闘力 4750 → 5650

「戦闘力が俺の Emacs を上回ったか。だが、この程度なら次のターンさえくれば……」

「クックック……。お前は次のターンが本当にあると信じているのか? 我はさらに、
neo-Vim のもう一つの機能を適用。このコマンドにインストールされた、neo-と名の付
くプラグインは新たな機能が追加される。これがプラグインの真(ネオ)の力だ。『ネ
オ・エボリューション!』」

「コマンドの機能解説文が書き換えられるだと? そんな機能があるはずが……。まさ
かお前は伝説の創造主(クリエータ)だというのか」

「我は覚醒した neo-interface の真の機能を適用する。メモリ上のコマンドを Vim
plugin 扱いで neo-Vim にインストールする。我が選択するのはお前のメモリ上の
『el-popup』だ。『ネオ・コンバージョン!』 」

 -------------------------------------------------------------------------------
|neo-interface:プラグイン・Vim
|このコマンドは「neo-Vim」上にインストールされている場合、次の機能が実装される。
|機能『ネオ・コンバージョン』
|相手のメモリを含むメモリ上の全てのコマンドの中から一つを neo-Vim にインストー
|ルする。そのコマンドは Vim plugin として扱う。機能も通常通り適用できるが、機能
|を適用した場合にはコマンドはトラッシュに送られる。この機能によりインストールさ
|れたコマンドはこのコマンドがトラッシュに送られた場合にはトラッシュに送られる。
|この機能は 1 ターンに一度しか使用できない。
 -------------------------------------------------------------------------------

「なんだと? 俺のプラグインが Vim 使いなんぞに奪われるとは……」

neo-Vim 戦闘力 5650 → 6450
Emacs 戦闘力 4800 → 4000

「我は neo-Vim で Emacs とバトル!」
「ぐ、ぐわぁぁぁ!」

遠馬:EP 0 メモリ 8/8 メインエディタ Emacs
美夢王:EP 350 メモリ 8/8 メインエディタ neo-Vim

--------------------------------------------------------------------------------
Scene 6
--------------------------------------------------------------------------------

敗北した遠馬は地面にがくりと崩れ落ちる。

「な、なぜだ。なぜ俺が負けたんだ。Emacs を使うこの俺が最強のはずなのに」
「Emacs というエディタの特性をよく生かした プラグイン重視のディスク構成は面白
かったよ。あえていうなら、テキストエディタへの愛が足りない」
彼もある意味純粋なのかもしれない。そのベクトルは間違っていた訳だが。

「愛……だと? お前は何を言っている。テキストエディタと人間に愛なぞある訳がな
かろう。テキストエディタはただの道具であり、それ以上の存在では決してないのだ」

「我にも昔はテキストエディタが道具と考えていた時もあった。昔はな……」
おっと、つい昔話をしてしまいそうになる。それは自重しなければ。

「それはどういう……」
「気が向いたらまた勝負してやる。ではな」

我はそう返して、遠馬の元を去るのであった。彼も面白い男ではあったが、やはりまだ
ディスク構成には再考の余地がある。良きライバルとなるかもしれない彼の成長を祈る
としよう。

今日のバトルエディターズ豆知識:
バトルエディターズではプレイヤーは 1 ターンにひとつプラグインをインストールする
か単体コマンドを実行することができる。ただし、コマンドの機能による特殊実行はこ
の制約を受けない。特殊実行をうまく使いこなすのが勝利への近道となる。


(「第4話:正義のヒーロー オクセイダー!」に続く……)

2013年9月3日火曜日

Vimぅぅうううわぁあああああん とは

ある一人のVimmerの魂の咆哮である。

Vim!Vim!Vim!Vimぅぅうううわぁああああああああああああああああああああああん!!!
あぁああああ…ああ…あっあっー!あぁああああああ!!!VimVimVimぅううぁわぁああああ!!!
あぁクンカクンカ!クンカクンカ!スーハースーハー!スーハースーハー!いいVim pluginだなぁ…ひひひ
んはぁっ!Vimたんの黄緑色の髪をエディットしたいお!エディットエディット!あぁあ!!
間違えた!VimVimしたいお!VimVim!VimVim!髪髪VimVim!カリカリVimVim…(SEGV)!!
僕が設定したVimたんかわいかったよぅ!!あぁぁああ…あああ…あっあぁああああ!!ふぁぁあああんんっ!!
Vimテクニックバイブル発売されて良かったねVimたん!あぁあああああ!かわいい!Vimたん!かわいい!あっああぁああ!
実践Vimも発売されて嬉し…いやぁああああああ!!!にゃああああああああん!!ぎゃああああああああ!!
ぐあああああああああああ!!!テキストエディタなんて現実じゃない!!!!あ…バトルエディターズもエディタアニメもよく考えたら…
V i m ち ゃ ん は 現実 じ ゃ な い?にゃあああああああああああああん!!うぁああああああああああ!!
そんなぁああああああ!!いやぁぁぁあああああああああ!!はぁああああああん!!暗黒美夢王(ダークビムマスター)ぁああああ!!
この!ちきしょー!やめてやる!!現実なんかやめ…て…え!?見…てる?画面のVimちゃんが僕を見てる?
全画面で起動してるVimちゃんが僕を見てるぞ!Vimちゃんが僕を見てるぞ!vim-jpのVimが僕を見てるぞ!!
Vim Advent CalendarのVim Girlが僕に話しかけてるぞ!!!よかった…世の中まだまだ捨てたモンじゃないんだねっ!
いやっほぉおおおおおおお!!!僕にはVimちゃんがいる!!やったよBram!!ひとりでできるもん!!!
あ、僕のVimちゃああああああああああああああん!!いやぁあああああああああああああああ!!!!
あっあんああっああんあVim様ぁあ!!ビ、ビマー!!ビムエディッタぁああああああ!!!
ううっうぅうう!!僕の想いよVimへ届け!!vim_devのMLへ届け